首页 > 解决方案 > 在 VS 报表服务器项目中,我可以检索和保存参数值吗?

问题描述

我们有一个托管 BI 报告的公司网站。对于一份特定的报告(可能还有其他报告,如果这可行的话),需要:

a) 检索报告参数的保存值

b) 保存报告参数的任何更改值

我知道可以通过将默认值设置为“从查询中获取值”来从数据中检索参数值。

但是,我想做的是当用户按下查看报告时,他选择的值应该保存到数据库中,以便这些将形成下一个用户的默认值。

这可以做到吗?似乎没有任何“开箱即用”的方法。

标签: reporting-servicesvisual-studio-2019

解决方案


这很简单。

假设您有一个国家/地区表,该表驱动您的参数的可用值,并且该表myCountryTable有两列CountryIDCountryName

您可用的值数据集将很简单,例如

SELECT * FROM myCountryTable

CountryID将是参数值,并且CountryName将是参数标签。

好的,所以您可能已经完成了上述所有操作。

现在,在您的主数据集查询中,只需INSERT在主查询运行之前添加一条语句。

所以,如果你的数据集查询看起来像这样..

SELECT * FROM SomeBigTable WHERE CountryID in (@CountryID)

你会把它改成类似

INSERT INTO myLogTable
    SELECT CountryID, CountryName FROM myCountryTable WHERE CountryID IN (@CountryID)
-- original query follows
SELECT * FROM SomeBigTable WHERE CountryID in (@CountryID)

注意:如果您因任何原因无法更改主数据集查询,您可以在单独的数据集中执行此操作,但您必须做一些事情

首先:更改 sql 使其在最后返回一个值,任何事情都会做,例如

INSERT INTO myLogTable
   SELECT CountryID, CountryName FROM myCountryTable WHERE CountryID IN (@CountryID)
   SELECT 1 as myReturnValue

第二:您必须将此数据集绑定到报表上的某些内容,例如表格或列表,这是为了确保查询仅在执行报表时执行,而不是在更改参数时执行。


推荐阅读