【发布时间】:2011-10-26 18:13:56
【问题描述】:
我在 SQL Server Reporting Services 中有一个自定义报告。 此报告有一些参数,例如:请求的开始日期、请求的数据到、捐赠者。
我想设置一个预定的电子邮件。 但是我想将“请求的日期开始”值分配给=(当前日期时间-1 个月) 并将“请求的日期结束”值分配给 = 当前日期时间
关于如何做到这一点的任何提示?
【问题讨论】:
标签: sql-server-2005 reporting-services
我在 SQL Server Reporting Services 中有一个自定义报告。 此报告有一些参数,例如:请求的开始日期、请求的数据到、捐赠者。
我想设置一个预定的电子邮件。 但是我想将“请求的日期开始”值分配给=(当前日期时间-1 个月) 并将“请求的日期结束”值分配给 = 当前日期时间
关于如何做到这一点的任何提示?
【问题讨论】:
标签: sql-server-2005 reporting-services
【讨论】:
编写一个存储过程,从存储过程中的sql获取如下:
select @FileName as FILENAME, @PATH as PATH, 'EXCEL' as RENDER_FORMAT , 'Overwrite' as WRITEMODE,
'True' as FILEEXTN , 'null' as USERNAME, 'null' as PASSWORD
从订阅中调用 proc
阿尼尔·马丹
【讨论】:
我遇到了类似的问题。我使用一组初始参数创建了订阅并设置了运行时间。然后我创建了一个存储过程和一个作业,以在订阅的计划运行时间之前运行存储过程。根据您的需要,您的日期数学将与我的不同。 然后我将参数设置复制到记事本,找到我需要更改的部分并将它们放在自己的行中。然后将它们放入存储过程中,如下所示。
UPDATE ReportServer.dbo.Subscriptions
SET Parameters =
(SELECT '<ParameterValues><ParameterValue><Name>Summary</Name><Value>PODETAIL</Value></ParameterValue><ParameterValue><Name>requisitioner_erp_user_id</Name><Value>51</Value></ParameterValue><ParameterValue><Name>requisitioner_erp_user_id</Name><Value>125</Value></ParameterValue><ParameterValue><Name>date_range_type</Name><Value>3</Value></ParameterValue><ParameterValue><Name>po_date_end</Name><Value>'
+
(SELECT FORMAT(DATEADD(wk, DATEDIFF(wk, 1, GETDATE()), -1), 'MM/dd/yyyy') AS po_date_end)
+
'</Value></ParameterValue><ParameterValue><Name>po_date_start</Name><Value>'
+
(SELECT FORMAT(DATEADD(wk, DATEDIFF(wk, 0, GETDATE()) - 1, 0), 'MM/dd/yyyy') AS po_date_start)
+
'</Value></ParameterValue></ParameterValues>'
)
WHERE ReportServer.dbo.Subscriptions.SubscriptionId IN ('B6645FD3-DE27-4551-8331-C0135305CC79')
【讨论】: