Sql 保存SSRS报告参数
我有一个SSRS报告,每次都需要运行多个参数。当用户想要运行报告时,他总是需要填写这些参数。我们在SSRS服务中是否有将这些参数保存为模板并用于将来运行的解决方案,或者实现这一点的最佳方法是将报告参数保存为模板Sql 保存SSRS报告参数,sql,sql-server,reporting-services,ssrs-2012,Sql,Sql Server,Reporting Services,Ssrs 2012,我有一个SSRS报告,每次都需要运行多个参数。当用户想要运行报告时,他总是需要填写这些参数。我们在SSRS服务中是否有将这些参数保存为模板并用于将来运行的解决方案,或者实现这一点的最佳方法是将报告参数保存为模板 目前我有SSRS报告,可以在Sharepoint中查看该报告。您不能保存单个用户在SSRS中所做的先前选择,以便该用户下次登录时显示该选择。您可以通过设置默认值进行默认选择。每次运行报表时,报表的每个用户都会显示此默认值。您可以将默认值设置为select的结果,但无论在默认值中构建什么逻
目前我有SSRS报告,可以在Sharepoint中查看该报告。您不能保存单个用户在SSRS中所做的先前选择,以便该用户下次登录时显示该选择。您可以通过设置默认值进行默认选择。每次运行报表时,报表的每个用户都会显示此默认值。您可以将默认值设置为select的结果,但无论在默认值中构建什么逻辑,每次运行报表时都会应用该逻辑。这是一个我没有测试过的理论,因此不确定它的效率如何。但是想法是这样的 虽然您不保存上次使用的参数,但您可以在
ExecutionLog
表中查看用户上次运行报告的时间,提取提供给此报告的参数,并将其作为下次运行的默认值
只需查询执行日志即可获得详细信息:
SELECT
R.Name
,L.[Parameters]
,L.username
,L.TimeStart
FROM dbo.ExecutionLog L WITH (NOLOCK)
INNER JOIN dbo.Catalog R WITH (NOLOCK)
ON L.ReportID = R.ItemID
WHERE R.Name = 'your report name'
and L.username = @user_name
这将为您提供报告的历史记录(取决于您的RS设置)
只需使用日志的最新实例(可能是max L.TimeStart)。然后提取参数,然后设置报告的默认值
再次。。不确定这有多有效,但它可能会工作
如果您的参数是级联参数,那么您可能会遇到问题,因为以前的参数值可能不再有效。。但是你明白了。你可以这样做
假设我们在报告中使用了两个参数,@Country和@Category
通常情况下,可用值来自如下数据集:
SELECT DISTINCT CountryID, CountryName FROM myTable ORDER BY CountryName
…以及类似的类别
假设用户使用以下参数运行报告
CountryID=8994245(法国、德国和英国)
和
类别ID=11,15(汽车、自行车)
我们需要创建一个表来与用户一起存储这些值。
差不多
CREATE TABLE userParams(userName nvarchar(128), reportName nvarchar(128), paramName nvarchar(128), paramValue int)
在主报表的数据集查询开始时,您可以保存参数值
DELETE FROM userParams WHERE userName = SYSTEM_USER AND reportName = 'myReportName'
INSERT INTO userParams
SELECT DISTINCT SYSTEM_USER, 'myReportname', 'Country', CountryID FROM myTable WHERE CountryID IN (@Country)
INSERT INTO userParams
SELECT DISTINCT SYSTEM_USER, 'myReportname', 'Category', CategoryID FROM myTable WHERE CategoryID IN (@Category)
好的,现在我们有了每个用户保存的最后一个参数,我们只需要创建一个数据集来读取它们,并将它们用作默认值
创建一个名为dsCountry\u Defaults
的数据集,使用类似于
SELECT CountryID from userParams WHERE userName = SYSTEM_USER and reportName = 'myReportName'
在您的国家/地区参数设置中,将默认参数设置为查询并指向此数据集
对其余参数重复此操作
应该是这样的
如果您使用SP作为数据集,则需要对其稍加修改,但原则是相同的。Google“ssrs中的默认参数”-第一次点击告诉您如何修改。