【问题标题】:SSRS - Expression using different dataset fieldsSSRS - 使用不同数据集字段的表达式
【发布时间】:2012-03-12 23:15:45
【问题描述】:

我有一份包含多个数据集的报告。来自不同数据集的不同字段用于报告的不同位置。

在报告的一部分中,我需要使用来自两个不同数据集的字段进行计算。这可能在表达式中吗?
我可以在表达式中以某种方式引用该字段所在的数据集吗?

例如,我想做这样的事情:

=Fields.Dataset1.Field / Fields.Dataset2.Field

【问题讨论】:

    标签: ssrs-2008 reporting-services bids reportbuilder3.0


    【解决方案1】:

    您可以通过指定字段的范围来实现这一点,如下所示:

    =First(Fields!fieldName_A.Value, "Dataset1") / First(Fields!fieldName_B.Value, "Dataset2")
    

    假设 A 为 10,B 为 2,并且它们是数字类型,那么当报表呈现时,您将得到 5 的结果。

    当您在表达式构建器中时,您可以选择类别:数据集,在 Item: 下突出显示所需的数据集,然后双击 Value: 下的所需字段,它将出现在您的表达式字符串中,并添加了范围。

    使用相同的逻辑,您可以像这样连接两个字段:

    =First(Fields!fieldName_A.Value, "Dataset1") & “ “ & First(Fields!fieldName_B.Value, "Dataset2")
    

    【讨论】:

    • 谢谢。这正是我所需要的。
    【解决方案2】:

    正如 PerPlexSystem 所写,假设您只想将数据集中的第一个值与另一个数据集的值进行比较,您可以使用 First 函数。

    但是,如果您想将一个数据集的每一行的值与另一个数据集的每一行的值进行比较,那么您将需要使用子报告 - 有关详细信息,请参阅 here

    【讨论】:

    • 或者如果您无法忍受子报表带来的问题,例如对齐问题和渲染中SSRS差异的细微差别,您可以在过滤器表达式中使用=LookupSet()方法。
    【解决方案3】:

    另一种选择是将参数用作变量。如果您想在其中一个数据集中创建计算字段,这将很有帮助。当参数值来自具有单个记录的数据集时,这是最好的应用。

    【讨论】:

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