【问题标题】:SSRS dynamic data retrieval from another dataset从另一个数据集检索 SSRS 动态数据
【发布时间】:2015-12-18 11:04:50
【问题描述】:

我想根据另一个数据集中的数据获取数据(动态)并将结果放在不同数据集的文本框中。

现在,我得到的数据是静态的,我尝试使用许多表达式但无济于事。

问题在于编辑文本框表达式。由于我从不同的数据集中获取数据,它总是要求我在我的表达式中使用数据集聚合函数。如果我指定了从中获取数据的数据集,那么我无法使其成为动态的 - 并且会得到不想要的结果。

我尝试的另一种方法是将数据集合并为一个而不是多个数据集并仅使用它,但这并不成功。

我怎样才能得到我想要的结果:

顺便说一下,文本框和表格在不同的范围内。我也尝试将它们组合在一个范围内。

【问题讨论】:

  • 有关您的输入和所需输出的更精确信息会有所帮助
  • 部门名称(X)将自动更改。假设在我的报告的第一页,我将列出所有 IT 员工,接下来是生产部门的员工等等……同时,第一个文本框将相应更改。文本框(部门)和员工表都在不同的数据集中。它们都属于同一公司。如何动态更改我的部门 ID?
  • 抱歉,我是 SSRS 的新手,我不确定。
  • 如果部门和员工在不同的表中,你怎么知道哪个员工在哪个部门?

标签: reporting-services ssrs-2012 ssrs-tablix


【解决方案1】:

从另一个数据集中获取数据需要一个聚合函数,因为它无法告诉您想要从该数据集中获取什么数据,因此它会强制您对其进行聚合,以便它可以返回特定值而不是整个值列表。

我认为你所追求的是Lookup 函数。查找允许您根据表数据集中的值从另一个数据集中查找值。举一个简单的例子,假设您的表是员工表,并且您在该表上有一个部门 id,另一个名为“部门”的数据集有一个 id 和一个名称。您可以使用以下表达式查找部门名称:

=Lookup(Fields!DeptId.Value, Fields!Id.Value, Fields!Name.Value, "Departments")

这使用当前表的数据集的DeptId 字段通过Id 字段查找Departments 数据集并返回Name 字段。

【讨论】:

  • 感谢您的评论克里斯。但是,我仍然收到数据集聚合错误。
【解决方案2】:
=Lookup(First(ReportItems!EmpID.Value),Fields!EmpID.Value,Fields!Dept.Value,"dataset_which_u_retrieve_the_data_from")

问题解决了!使用 reportItems 而不是 Fields,因为我只检索一个数据,而不是整个字段。

感谢大家帮助我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-10
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2011-02-16
    相关资源
    最近更新 更多