键值对的 SSRS 动态报告

SSRS Dynamic Reports for Key Value Pairs

我需要使用 SSRS 来创建许多不同的报告,我一直在努力寻找最适合我的方式,以便根据需要轻松创建它们,并让用户导航它们并根据需要使用它们。

让您了解我正在处理的两组数据:

现在 EDI 数据相当一致,所以这些列是静态的。 硬件数据通常是大量不同配置的列表。我以不同的平面文件格式接收它们,并使用 SSIS 或其他工具将数据放入键值对中。现在在一份报告中,我使用矩阵来保持 EDI 列静态,它与序列号上的硬件和硬件数据枢轴相匹配。

所以报告不会中断,所以我不会给用户太多信息,它与另一个 table 匹配,我在其中指定了我想作为列的键。

这是我的一份报告的一个小例子:

绿色列是 EDI,橙色是硬件。

我的问题是,有没有更好的方法让我这样做?有些报告可能会变得复杂,比如需要某些硬件的总计(计算硬盘 space、内存总计等),这很难动态地完成。

我试过使用这些参数以这种方式在报告中创建:

这样我可以为每个项目创建关键列,用户可以select他们想要的报告运行。默认为所有数据。

有没有更好的方法来创建这些报告? SSRS 似乎真的不能很好地处理动态枢轴。

是否有更好的工具可以动态处理这些报告,或者让用户挑选他们想在报告中看到的内容?

您不能在 SSRS 中动态创建列,但您可以控制列的可见性。

1) 在 table 中创建一个列表,其中包含您要切换的所有列的名称,并包括标题为 'All'.

的列

2) 创建一个基于此 table 的参数并确保 multi-select 已打开。

3) 右键单击​​要切换的每一列,select 可见性,然后创建一个条件来检查用户是 selected All 还是 selected参数列表中的列。

4) 培训用户通过 selecting 和 deselecting 从下拉菜单中控制可见内容。

我无法可视化您的数据,但如果我理解正确,您可以有一个下拉列表显示您在列组中使用的列中的所有唯一值。将其设置为 multi-value 然后简单地将 WHERE 子句读作

SELECT * FROM myTable WHERE myColumnGroupField IN (@myColumnChoiceParameter)

这样用户就可以select他们想要的任何列。

您可以通过添加另一个参数来扩展它,该参数具有一些预设的列组(如果我理解正确的话,我想您可能已经有了其中一个),这将设置主 @myColumnChoiceParameter 参数的默认值.

如果您想要更灵活的东西,那么您可能想看看 Power BI,但这取决于您打算如何部署,这可能不是一个简单的选择。