从 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
我需要你的帮助来从组页脚的 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