SSRS 2012限制从参数数据集返回的值

时间:2016-10-21 02:02:15

标签: reporting-services ssrs-2012

运行SSRS2012。我们使用多维数据集进行报告,因此无法更改MDX /查询代码。

我有一个来自客户端多维数据集的简单查询: Client.ClientID,Client.ClientName,Client.ClientAddress

我使用查询设计器将ClientID作为参数添加 SSRS自动:

  • 在报表设计器@ClientClientID
  • 中创建了参数
  • 创建了参数数据集
  • 在客户端数据集
  • 的参数选项卡下添加了参数

这是预期的行为,报告按预期运行,提示我从列表中选择一个值。如果我这样做,它会返回我所追求的单个客户端的数据。

这是我的问题。

虽然它有效,但返回的值列表很长,因此很难使用。用户一次只能为一个客户端运行此报告,因此他们希望输入单个客户端ID并运行报告。

我已经尝试了我能想到的一切。

我最接近的是添加另一个参数@PreFilter并将其用作参数数据集的过滤器。

然而,对于用户来说这太可怕了。提示他们将客户端ID输入@PreFilter,然后他们必须等待一个年龄(因为参数数据集被过滤),然后他们从@ClientClientID参数提示中选择完全相同的客户端ID。

我甚至将@ClientClientID的默认值指定为@PreFilter,但仍然会提示他们选择一个值

必须有更好的方法!

2 个答案:

答案 0 :(得分:0)

听起来像数据建模问题。 ClientId in参数可能直接来自事实表,而不是来自Client维。如果数据被正确建模,例如星型模式具有单独的事实和维度,检索客户端数据应该更快。

答案 1 :(得分:0)

最后 - 一个更好的方式。

  1. 来自报告设计页面
  2. 确保显示“报告数据”窗格(如果没有,请单击“查看”菜单并单击“报告数据”选项)
  3. 从“报告数据”菜单中,展开“参数”文件夹(单击“+”按钮)
  4. 当您在查询设计器中针对ClientID单击“参数”时,将会自动创建一个参数(以及自动创建的参数数据集)。
  5. 右键单击此参数(@ClientClientID)
  6. 选择参数属性
  7. 将可用值选项设置为“无”
  8. 将默认值选项设置为“无”
  9. 点击确定
  10. 从“报告数据”窗格中,展开“数据集”文件夹(单击“+”按钮)
  11. 右键单击每个数据集(自动创建的参数数据集除外)
  12. 单击“数据集属性”
  13. 单击“参数”菜单项(左侧)
  14. 在参数名称下,您将看到列出的ClientClientID。
  15. 在参数下,您将看到一个带有@ClientClientID的下拉框。您需要更改此
  16. 单击@ClientClientID
  17. 旁边的Fx按钮
  18. Replace = Parameters!ClientClientID.Value with =“[Client]。[ClientID]。& [”+ Parameters!ClientClientID.Value +“]”
  19. 单击“确定” 你应该好好去。