【问题标题】:SSRS custom codeSSRS 自定义代码
【发布时间】:2018-05-21 23:58:53
【问题描述】:

我的 SSRS 报告有问题。我想要完成的是在字段ClaimNumber

上获得特定组的正确汇总总数

特定公式的工作方式取决于记录中的其他字段,并且这些值为零:

=iif(Fields!FieldA.Value=0,0,Fields!FieldA.Value-Fields!FieldB.Value-Fields!FieldC.Value)

所以如果FieldA为零,则显示值为0,否则显示FieldA-FieldB-FieldC

这对每个lineitem 都有效,但ClaimNumber 上的分组汇总总计不正确,因为在某些情况下,特定ClaimNumber 下的FieldA 值是0,有时不是。所以我无法对ClaimNumber 分组总数求和,因为摘要不知道哪些记录FieldA0,哪些不是。

必须有一个可以在这种情况下工作的 SSRS 自定义代码公式吗?

【问题讨论】:

    标签: reporting-services custom-code


    【解决方案1】:

    如果您将Sum 函数包裹在您的表达式周围,或者甚至围绕表达式中的每一列,它只会计算一次。换句话说,这描述了您遇到的问题,它没有考虑 FieldA 中某些为 0 的行。纠正此问题的一种方法是使您的表达式成为数据集上的计算字段。然后您可以聚合计算字段以获取总计和小计。由于它是一个计算字段,它将逐行评估以获得正确的总数。所以好消息是:没有自定义代码!

    【讨论】:

    • 嗨,史蒂夫 - 创建计算字段并尝试求和时出现错误。数据集中的计算字段(称为“合约金额”)为:=iif(Fields!FieldA.Value=0,0,Fields!FieldA.Value-Fields!FieldB.Value-Fields!FieldC.Value)。这在每个单独的行中都可以正常工作,但是当我尝试在表中的组中使用聚合求和时 - 使用 =Sum(Fields!contract_amount.Value, "groupfield") - 我得到一个错误 - 仅在包含FieldA 为零的行。所有其他按组计算的总和正确。非常非描述性的“#Error”。有什么想法吗?
    • 试试=Sum(Fields!contract_amount.Value)
    • @Scott 值 A、B、C 是整数还是小数?试试 =SUM(iif(Fields!FieldA.Value=0,Cdec(0),Fields!FieldA.Value-Fields!FieldB.Value-Fields!FieldC.Value))
    • 太棒了!那行得通。看起来它确实有所作为,int vs decimal。谢谢你们!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多