【问题标题】:SSRS 2012 limit values returned from parameter dataset从参数数据集返回的 SSRS 2012 限制值
【发布时间】:2017-09-05 13:43:40
【问题描述】:

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

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

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

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

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

这是我的问题。

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

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

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

但是,对于用户来说,这很糟糕。系统会提示他们在 @PreFilter 中输入客户端 ID,然后他们必须等待一段时间(因为参数数据集已被过滤),然后他们从 @ClientClientID 参数提示中选择完全相同的客户端 ID。

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

一定有更好的办法!

【问题讨论】:

    标签: reporting-services ssrs-2012


    【解决方案1】:

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

    【讨论】:

    • 感谢 Shawm,但由于我使用查询设计器,我只能从维度中提取。
    • 该死 - 误按了 Enter。我将联系数据仓库专家,看看他们是否能做些什么。至少不是我!
    • 嗨。我仍然需要知道如何限制从参数数据集返回的结果。
    【解决方案2】:

    终于 - 一个更好的方法。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-31
      相关资源
      最近更新 更多