【问题标题】:Adding a simple calculated field in SSRS?在 SSRS 中添加一个简单的计算字段?
【发布时间】:2017-12-23 15:57:33
【问题描述】:

我正在尝试在 SSRS 中创建报告。我已经创建了一个简单的表格报告,现在我需要在该表格中添加一个计算字段。下面是我需要用来创建计算字段的两个字段。

type          value
Credit Memo   3463
Invoice       2623
Invoice       3105
Invoice       3664
Invoice       2040
Credit Memo   2929
Credit Memo   2424
Invoice       2549
Invoice       2129
Credit Memo   2957

我需要设置一个 if 条件:

发票类型的值总和 - 贷项通知单类型的值总和

我为此创建了 2 个计算字段,第一个是:

SumOfInvoice==iif(Fields!new_documenttypeValue.Value="Invoice",(Sum(Fields!invoicedetail1_extendedamountValue.Value)),0)

第二个是:

SumOfCreditMemo==iif(Fields!new_documenttypeValue.Value="Credit Memo",(Sum(Fields!invoicedetail1_extendedamountValue.Value)),0)

然后我在表格中添加了一列并编写了一个表达式:

=Sum(Fields!SumOfInvoice.Value)-Sum(Fields!SumOfCreditMemo.Value)

但它给了我这个错误:

用于计算提交的 SumOfInvoice 的表达式包括 聚合、行号、运行值、上一个或查找函数。 Aggregate、RowNumber、RunningValue、Previous 和查找函数 不能在计算字段表达式中使用。

有人可以帮我吗?

谢谢

【问题讨论】:

  • 您不能将这些表达式放在数据集计算字段中,但您可以将它们放在表格的单元格中,它们应该可以正常工作。只是为了澄清表达式应该以=iif开头,您不需要在其中输入名称。
  • 我同意虽然表达式有点笨拙,但您应该只使用它们而不是尝试创建临时变量。另请注意,当您尝试计算最终值时,您已经在创建临时变量时对这些值进行了求和,因此每个临时变量周围的 Sum() 对我来说似乎是多余的......
  • 我正在单元格中直接尝试这个表达式,现在它显示#Error ??
  • 有什么建议吗?
  • 也许尝试隔离 Iif 和 Sum 以确保组件正常工作。即:Iif(Fields!new_documenttypeValue.Value="Invoice", 1, 0)。并且,Sum(Fields!invoicedetail1_extendedamountValue.Value)

标签: reporting-services dynamics-crm ssrs-2012 ssrs-tablix calculated-field


【解决方案1】:

你可以在 SUM 中嵌套 IIF

发票总额

=SUM(
Iif(Fields!new_documenttypeValue.Value="Invoice",Fields!invoicedetail1_extendedamountValue.Value,0)
)

贷项通知单也是如此

=SUM(  
Iif(Fields!new_documenttypeValue.Value="Credit Memo",Fields!invoicedetail1_extendedamountValue.Value,0)
)

发票 - 信用表达

= SUM(
Switch(
Fields!new_documenttypeValue.Value="Invoice", Fields!invoicedetail1_extendedamountValue.Value,
Fields!new_documenttypeValue.Value="Credit Memo",-Fields!invoicedetail1_extendedamountValue.Value,
True, 0
)
)

或者更简单的选择,因为您只有发票和贷项通知单

=SUM( 
        IIF(
        Fields!new_documenttypeValue.Value="Credit Memo",
        -Fields!invoicedetail1_extendedamountValue.Value,
         Fields!invoicedetail1_extendedamountValue.Value
            )
        )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 2014-06-14
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    相关资源
    最近更新 更多