2015-03-09 3 views
0

Мне нужна ваша помощь в исключении подавленных сумм из SUM в нижнем колонтитуле группы. В разделе сведений у меня есть дубликат сделки и суммы. Так, в разделе «Эксперт раздела» для подробных разделов я выполнил условие по формуле «Подавление» для подавления дублированных полей:Исключить подавленные поля из суммы

{deal_no} = (next {deal_no})

Приведенное выше условие применяется в отчете, и я смог подавить дубликаты. Теперь в нижнем колонтитуле группы я выполняю общее количество, используя формулы для вычисления суммы SUM для сумм. Однако этот СУММ вычисляет подавленные суммы и дает результаты. Итак, как удалить их из расчета.

+0

Вы можете объяснить свое общее состояние работы, как вы применили? – Siva

ответ

1

Это ответ

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

что вы можете сделать, вместо того, чтобы использовать running total, вы можете просто подвести итог, щелкнув правой кнопкой мыши на поле и используя Insert Summary, который даст правильный результат.

+0

У меня есть формула, которая называется Стоимость. В этой формуле у меня есть оператор if, как показано ниже, если group = "TERMS" Then 0 else {Table A.Amount} * 100/{@no.ofdays}. Здесь я не могу использовать сводку – Learner30

+0

Почему вы не можете использовать резюме? вы пошли вставить резюме и проверили, можете ли вы использовать этот вариант или нет. Насколько я знаю, так как вы манипулируете числовым значением, вы можете использовать опцию «вставить сводку» – Siva

+0

Нет резюме не показано, потому что, как я объяснил что я делаю SUM для формулы, которая имеет оператор if – Learner30

0

Я сделал функцию funsumColumn (dtfunSum, "intProductId", "decCBMCMS") и передать datattable, имя идентификатора таблицы и имя столбца, я хочу подвести к.

Эта функция возвращает сумму уникальной строки 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 
Смежные вопросы