首页 文章

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

提问于
浏览
0

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

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

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

  • 在报表设计器@ClientClientID中创建了参数

  • 创建了参数数据集

  • 在Client数据集的参数选项卡下添加了参数

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

这是我的问题 .

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

我已经尝试了所有我能想到的东西 .

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

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

我仍然提示选择一个值 .

肯定有更好的办法!

2 回答

  • 0

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

  • 0

    最后 - 一个更好的方法 .

    • 来自报告设计页面

    • 确保显示“报告数据”窗格(如果没有,请单击“查看”菜单并单击“报告数据”选项)

    • 从Report Data菜单中,展开Parameters文件夹(单击按钮)

    • 当您在查询设计器中针对ClientID单击"Parameter"时,将会自动创建一个参数(以及自动创建的参数数据集) .

    • 右键单击此参数(@ClientClientID)

    • 选择参数属性

    • 将可用值选项设置为"None"

    • 将“默认值”选项设置为"None"

    • 单击“确定”

    • 从“报表数据”窗格中,展开“数据集”文件夹(单击按钮)

    • 右键单击每个数据集(自动创建的参数数据集除外)

    • 单击“数据集属性”

    • 点击参数菜单项(左侧)

    • 在参数名称下,您将看到列出的ClientClientID .

    • 在参数下,您将看到一个带有@ClientClientID的下拉框 . 你需要改变它

    • 单击@ClientClientID旁边的Fx按钮

    • Replace = Parameters!ClientClientID.Value with = "[Client].[ClientID].&[" Parameters!ClientClientID.Value "]"

    • 点击OK你应该好好去 .

相关问题