从 Sum 中排除被抑制的字段

Exclude suppressed fields from Sum

我需要你的帮助来从组页脚的 SUM 中排除抑制的金额。在详细信息部分,我有重复的交易号和 amounts.So,在详细信息部分的部分专家中,我对公式 "Suppress" 执行了一个条件以抑制重复的字段,即:

{deal_no} = (下一个{deal_no})

报告中应用了上述条件,我能够抑制重复项。现在在组页脚中,我正在执行 运行 总计,使用公式来计算金额的 SUM。但是,此 SUM 正在计算抑制的金额并给出结果。那么如何将它们从计算中删除。

您可以做的是不使用 running total,您可以通过右键单击该字段并使用 Insert Summary 进行总结,这将给出正确的结果。

这就是答案

WhilePrintingRecords;
If {deal_no} <> (next{deal_no}) OR OnLastRecord then //this excludes the duplicates
(
numbervar gsum := gsum + {@Cost};
numbervar grand := grand + gsum;
);

我创建了函数 funsumColumn(dtfunSum, "intProductId", "decCBMCMS") 并传递 datattable、table ID 名称和我要求和的列名称。

此函数 returns 唯一 ID 行的总和。

Private Function funsumColumn(ByVal dt As DataTable, ByVal idColumnName As String, ByVal ColumnForSum As String) As Decimal

    Dim dtnew As New DataTable
    dtnew.Columns.Add(idColumnName, GetType(Integer))
    dtnew.Columns.Add(ColumnForSum, GetType(Double))
    Dim dtMainTable As DataTable
    Dim ComputeColumnSum As Decimal
    Try
        Dim ExistIdInLocalTable As Integer
        Dim foundRow() As DataRow
        Dim PIid As Integer
        For i As Integer = 0 To dt.Rows.Count - 1
            PIid = dt.Rows(i).Item(idColumnName)
            foundRow = dtnew.Select("" & idColumnName & "='" & PIid & "'")
            ExistIdInLocalTable = foundRow.Count
            If foundRow.Count = 0 Then
                dtnew.Rows.Add(dt.Rows(i).Item(idColumnName), dt.Rows(i).Item(ColumnForSum))
            Else
            End If
        Next
        dtMainTable = dtnew
        ComputeColumnSum = dtMainTable.Compute("sum(" & ColumnForSum & ")", "")
        Return ComputeColumnSum
    Catch ex As Exception
    End Try
    Return ComputeColumnSum