首页 > 解决方案 > SSRS:动态选择数据集/查询

问题描述

我正在将报告移植到 SSRS,并且我发现 web 应用程序当前以一种奇怪的方式处理的报告。我正在尝试寻找解决方案。

目前,webapp 在调用报表时会执行一些逻辑,并确定是调用一个 sql 查询还是另一个。它们都提供相同的 sql 数据库字段。webapp 的报告构建器使用所使用的任何查询的内容填充一个模板。

好的。我怎样才能用 SSRS 重现这个?据我所知,我的选择是:

  1. 定义单个数据集并执行逻辑以选择要运行的选择语句。(但是怎么做?)
  2. 定义两个数据集并使用大量 IIF 语句来选择每个字段中显示的数据集/值。(但这适用于 tablix 吗?)
  3. 其他我没有想到的东西。

我只需要知道什么是可能的和有效的。

谢谢。

标签: reporting-servicesssrs-2012

解决方案


一种方法是使用一个名为 的隐藏参数@logic

您已经知道逻辑是什么以及为该逻辑运行哪个查询。

例如,假设您当前的第一个查询是

select table1.columna as a from table1

而您当前的第二个查询是

select table2.columna as a from table2

现在能做的是,

select table1.columna as a from table1 where @logic = 0
union all
select table2.columna as a from table2 where @logic = 1

您的报告将根据逻辑将@logic 参数传递给数据集。

如果一组@logic = 0,则第二组@logic = 1

这将返回您需要的数据集,因为 @logic 应该处理结果集。

希望我的解释是有道理的。

当然..这只是接近它的一种方式!


推荐阅读