【发布时间】: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