gpt4 book ai didi

reporting-services - 无论如何每天都要更改电子邮件订阅的正文?

转载 作者:行者123 更新时间:2023-12-02 01:07:26 25 4
gpt4 key购买 nike

老实说,我认为这是不可能的,但我至少想尝试一下。每天我都会生成一份报告,并根据我在专有程序中进行的交易,通过 SSRS 电子邮件订阅发送给不同的人。有些日子实际上没有交易,所以它发送一个空白的 excel 文件。我认为它不受本地支持,所以如果 excel 文件中没有数据,是否有办法在电子邮件正文中添加消息“今天没有交易”?有时会说类似“附件 Excel 文件中的交易”

所以有人可以确认一下。这可能吗?或者没有?

最佳答案

实际上,这在本地是可能的,而且非常棒!您正在寻找的是数据驱动订阅。您可以通过转到报告管理页面下的订阅选项卡来创建一个。有两个选项:创建订阅和创建数据驱动订阅。单击创建数据驱动订阅。

对于从这里开始的篇幅,我深表歉意,但关于这些还有很多话要说!

我无法在这里详细说明所有步骤,因为它可以是一个深入的过程,可以按照您的意愿进行设置;有很多选择! Here是关于数据驱动订阅的 MSDN 文章,但您会发现它的帮助微乎其微。 Here是关于如何创建一个的 TechNet 教程,但我认为您会发现它没有像您希望的那样深入。我只是通过反复试验学会了一切。

关于这些有很多要说的,但本质上您编写了一个 SQL 查询来评估数据中的某些内容,结果为不同的变量提供不同的订阅值,例如“评论”(以 html 编写的电子邮件)、“包含报告”(真/假)和“呈现格式”等等。

请务必注意,对于您的查询返回的每一行,都会发送一封电子邮件。因此,如果您想发送三封交易报告电子邮件,您需要确保您的查询返回包含所有适当数据的三行。

为了您自己的启发,这里是我的一个驱动报告的查询的编辑副本。您会注意到评论字段很长,因为它需要用 html 编写。但是 SQL 可以处理非常长的字符串,只要您能够正确地表达它们。

因此,在您的情况下,您可能希望在没有交易时将 Include_Report 设置为 false,然后将评论更改为正确的消息,说明为什么没有附加报告。

此查询的目的是查找服务器问题,如果发现问题,发送一封电子邮件(不附上报告)告诉最终用户稍后会出现。 (我不负责服务器性能,经常有人不及时修复)。

您会注意到,我为 SSRS 订阅中的每个输入变量都有一个字段。这样,我就可以根据我能想到的任何脚本来控制通过电子邮件发送报告的方式。它还使设置更容易一些。我还构建了一种快速测试订阅的方法,这样我就可以使用它,而无需将其发送给最终用户,将其更改为发送给最终用户只需几秒钟。

/*********************************************************/
/* Change @Testing to 'TEST' to have all emails */
/* sent to Christopher Brown */
/*********************************************************/
/* Change @Testing to 'PROD' to have all emails */
/* sent to normal recipients. */
/*********************************************************/

Declare @Testing varchar(4) = 'TEST';

With Problems as (

/*Script that looks for hardware failures or anything that would
cripple the accuracy of the report.*/

)

Select Case
When @Testing = 'TEST'
Then 'Just.Me@work.com'
When @Testing = 'PROD'
Then 'End.Users@work.com'
Else 'Just.Me@work.com'
End as 'To'
, Case
When @Testing = 'TEST'
Then 'Just.Me@work.com'
When @Testing = 'PROD'
Then 'IT.Group@work.com'
Else 'Just.Me@work.com'
End as 'CC'
, '' as 'BCC'
, 'Just.Me@work.com' as 'Reply-To'
, Case
When @Testing = 'TEST'
Then '***TEST***'
Else ''
End +
Case
When /*Problems Indicated*/
Then '@ReportName - Report Delayed'
Else '@ReportName for ' + CONVERT(varchar(10),getdate(),101)
End as 'Subject'
, 'Normal' as 'Priority'
, Case
When /*Problems Indicated*/
Then 'False'
Else 'True'
End as 'Include_Report'
, 'PDF' as 'Render_Format'
, Case
When /*Problems Indicated*/
Then 'High'
Else 'Normal'
End as Priority
, 'false' as 'Include_Link'
, Case
When /*Problems Indicated*/
Then '<html><Body><Font Face="Constantia","Times New Roman"><p>This Report could not be created at this time. We will send out an updated Report once the server issues have been resolved. If you have questions, please contact us.</p></Font></body></html>'
Else '<html><Body><Font Face="Constantia","Times New Roman"><p>Attached is the Report. When the report is run on a Monday, it does one thing.</p><p>Every other weekday, the report does something slightly different. Please note that the report is scheduled to run every weekday, Monday through Friday, regardless of holiday schedules.</p><p>If you have questions about the report, please contact us.</p><p>If the attached report is empty or missing vital information, click <a href="mailto:IT.Group@work.com?Subject=Problem%20with%20Report">here</a> to notify us.</p></Font></body></html>'
End as 'Comment'

From Problems

关于reporting-services - 无论如何每天都要更改电子邮件订阅的正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21005813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com