搜索长值列表SSRS参数

时间:2017-08-03 20:11:05

标签: reporting-services sql-server-2012 ssrs-2012

enter image description here

问题: 我正在使用的报告具有200多个唯一值的Building参数。我试图想办法让用户尽可能快地搜索和找到他们感兴趣的值(而不是逐个滚动和选择)。

到目前为止,我正在使用另一个提示符,您可以在其中传递一个字符串值,该值通过split函数生成Building提示符。如果您没有通过任何内容,则默认选择全部。

它有效,但它仍然不是理想的,因为它会包含您可能不感兴趣的其他值。示例:我只想要:20500,20700,21400。

问题: 有没有更好的方法来解决这个问题? 有没有办法保存选择?然后允许用户选择他们最常用的前10名"选择?

我认为将其转储到Excel中然后使用其过滤功能更容易,但用户不同意:)。

2 个答案:

答案 0 :(得分:1)

同意,有时快速导出到Excel可以解决报告中复杂的问题。那就是说......

十大想法:考虑到报告的所有执行都作为log table存储在ReportServer数据库中,您可以获得有关哪些参数是用户首选的信息如果你有权访问这个数据库(我知道不是每个人都可以访问他们的组织)。在过去,我已经根据这些信息建立了SSAS数据模型,这样我们就可以分析信息并将其输入到报告参数中,就像这样的情况。您将查询执行日志或数据模型,创建包含前10个的可选参数,然后在用户选择其中的值时对其进行过滤。

过滤器参数:您已明确拥有此概念,并且应该能够添加更复杂的逻辑(最好在存储过程中隔离)以满足您的要求。在匹配' 205'要对' 20500',您需要在右侧用零填充每个参数值最多5个字符,并将其与建筑物值的左侧5个字符进行匹配。

保存选择:我可能因此而受到批评,因为我认为报告应该是一个读取而不是写入过程,但这是我在SSRS HAD <的情况下实现的/ strong>待用,我被迫寻找解决方案。从显然将您的过滤器参数传递到的存储过程中拉出主数据集,并为执行查询的用户添加另一个参数。在返回结果之前的存储过程中,请执行upsert到新的UserLastParameter表以记录用户的最后一个值,然后使用此表填充将来的参数值。

答案 1 :(得分:0)

通过允许选择多个值,我只需将关键字提示从文本框转换为LOV,就能满足用户的需求。通过这样做,用户可以简单地从电子邮件或Excel电子表格中复制和粘贴数据。它还会自动添加逗号!谁会知道的!