使用存储过程有条件地格式化我的 HTML 报告?
Posted
技术标签:
【中文标题】使用存储过程有条件地格式化我的 HTML 报告?【英文标题】:Conditionally format my HTML report using stored procedures? 【发布时间】:2021-10-06 17:29:27 【问题描述】:我使用 SQL Server 存储过程和 html 开发了这段代码,以发送一个检查数据差异的自动报告,但我想在 delta 列中突出显示不等于 0 的数字。有没有办法用红色(例如)突出显示零,用绿色突出显示非零?
I have attached the report here with the part highlighted in yellow that needs to be highlighted by HTML conditional formatting
SET @tableHTML1 =
+ N' <p>This report is driven by <b>DWQC.dbo.mwsp_QC_EM_LS_EPMS_DAILY_CHECK </b> stored procedure.
Each METRIC in the QC is compared between the Source,House and Mart databases,
and the resulting delta is displayed </p>'
+N'<style type="text/css">' + N'.tg border-collapse:collapse;border-spacing:0;border-color:#aaa;'
+ N'.tg tdfont-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#aaa;color:#333;background-color:#fff;'
+ N'.tg thfont-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#aaa;color:#fff;background-color:#808080;'
+ N'.tg .tg-9ajhfont-weight:bold;background-color:#808080' + N'.tg .tg-hgcjfont-weight:bold;text-align:center'
+ N'</style>' -- contains all the styling for the HTML report
+ N'<table class="tg">' -- calls the table to included in the report
+ N'<th class="tg-hgcj">CHECK_ID </th>'
+ N'<th class="tg-hgcj">CHECK NAME </th>'
+ N'<th class="tg-hgcj">SOURCE_COUNT</th>'
+ N'<th class="tg-hgcj">TARGET_COUNT</th>'
+ N'<th class="tg-hgcj">DELTA</th>'
+ N'</tr>'
+ CAST ( (select -- checks for columns that could be seen in attached report
td=CHECK_ID,'',
td=CHECK_NAME,'',
td=SOURCE_COUNT,'',
td=TARGET_COUNT,'',
td=DELTA,''
from( Select top 1000
isnull(CHECK_ID,0) as CHECK_ID,
isnull(CHECK_NAME,0) as CHECK_NAME,
isnull(SOURCE_COUNT,0) as SOURCE_COUNT,
isnull(TARGET_COUNT,0) as TARGET_COUNT,
isnull(DELTA,0) as DELTA
from #table --contains the data to be used in the report; temporarily naming it "table"
order by RID)Q
FOR XML PATH('tr'),
TYPE
) AS NVARCHAR(MAX))
+ N'</table>'
提前致谢!!
【问题讨论】:
使用 CSS 背景色? 这是大错特错...... SQL Server 内置了一个报告引擎,使用它而不是重新发明你自己的科学怪人的报告怪物。 有没有办法做到这一点 - 你没有说你想要 那个 是什么 - 只有你知道你希望它如何显示- 带有闪烁边框的 50pt 发光文本?如果您要构建 HTML 格式的输出,将其与您的查询分开,这可能是一个好主意。 使用报告引擎很简单,但我需要在我的 ETL 工作完成后立即启动这些过程。所以我将这些过程与 ETL 作业集成在一起。 编辑了我的问题@Stu 【参考方案1】:..
td=TARGET_COUNT,'',
[td/@class]=case when DELTA > 0 then 'highlightmeclass' end,
-- Or… [td/@bgcolor]= case when DELTA > 0 then 'yellow' end,
td=DELTA,''
..
【讨论】:
这对我不起作用。你怎么称呼这个概念?也许我可以学习和尝试案例。 ..@DR222 ..edit 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高答案的长期价值。您可以在帮助中心找到更多关于如何写好答案的信息:***.com/help/how-to-answer。祝你好运?以上是关于使用存储过程有条件地格式化我的 HTML 报告?的主要内容,如果未能解决你的问题,请参考以下文章
我的 SQL 存储过程中的 HTML 格式化语法无法正常工作