基于查询数据实现SSRS数据驱动订阅按指定日期发送方案咨询
SSRS按自定义触发日期实现数据驱动订阅方案
无需操作报表服务器端可执行文件,仅用SSRS原生配置即可实现需求,操作步骤如下:
步骤1:调整订阅数据集查询
在原有查询基础上新增日期匹配条件,保证只有当天等于SendRpt字段值时,数据集才会返回有效数据行:
SELECT PPstart, PPend, PmtDate, PayForMonth, DateAdd(dd, - 3, PPend) AS SendRpt, 'Name1@domain.com' AS MailTo, Concat(PayForMonth, ' Monthly Payroll Report') AS Subject FROM PayPeriodTable WHERE YEAR(GETDATE()) = LEFT(PmtDate, 4) AND PayForMonth = CONVERT(char(3), GETDATE(), 0) -- 新增触发条件:仅当天为指定发送日时返回数据 AND CONVERT(DATE, GETDATE()) = CONVERT(DATE, SendRpt)
SSRS数据驱动订阅的执行逻辑为:如果查询返回空数据集,本次订阅不会执行任何发送动作,只有返回有效行时才会按配置发邮件。
步骤2:配置订阅执行计划
- 进入SSRS报表的订阅管理页,新建数据驱动订阅
- 执行计划选择「按固定计划运行」,频率设置为每天执行一次,选择你需要发件的固定时段(比如上午9:00)
- 后续收件人、邮件主题、报表参数等配置,直接绑定数据集中对应的
MailTo、Subject等字段即可
如果你后续需要调整发送日期,只需要修改
PayPeriodTable里的SendRpt字段值即可,不需要修改订阅配置,也不需要操作服务器上的任何文件。
内容的提问来源于stack exchange,提问作者QueenMaureen
相关产品推荐
相关产品推荐

