reporting-services - 在 VS 报表服务器项目中,我可以检索和保存参数值吗?
问题描述
我们有一个托管 BI 报告的公司网站。对于一份特定的报告(可能还有其他报告,如果这可行的话),需要:
a) 检索报告参数的保存值
和
b) 保存报告参数的任何更改值
我知道可以通过将默认值设置为“从查询中获取值”来从数据中检索参数值。
但是,我想做的是当用户按下查看报告时,他选择的值应该保存到数据库中,以便这些将形成下一个用户的默认值。
这可以做到吗?似乎没有任何“开箱即用”的方法。
解决方案
这很简单。
假设您有一个国家/地区表,该表驱动您的参数的可用值,并且该表myCountryTable
有两列CountryID
和CountryName
。
您可用的值数据集将很简单,例如
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
第二:您必须将此数据集绑定到报表上的某些内容,例如表格或列表,这是为了确保查询仅在执行报表时执行,而不是在更改参数时执行。
推荐阅读
- java - 如何在解组时将多次出现的 xml 捕获到 pojo?
- android - 使用 RXJava 监听 Room 数据库插入
- visual-studio-code - 如何更改 VS Code 缩进多行注释的方式?
- ios - 是否可以将 iOS 10 从 Xcode 8 移动到 Xcode 10,以便能够在 Xcode 10 上的 iOS 10 模拟器上运行,而不是从 Xcode 下载它
- sql - SQL Server 游标从不同的表中提取数据并合并相同的行
- twitter-bootstrap - 单击下拉菜单时切换箭头(Bootstrap 4)
- php - 无法使用 password_verify 验证密码
- dictionary - 我们如何将一对 (setOf(item), Double) 拆分为具有所有可能组合的对 (item,double) ?
- spring-batch - 在 Spring Batch 应用程序中使用项目处理器中的作业参数之一
- python - 移动不重叠的列,使它们重叠/对齐