Отчет Crystal возвращает неправильную сумму с группами отчетов (удвойте исходную сумму)

У меня есть формат отчета, например

Main Report

Installment # 1

SubReport
---------------
     Group 1 (Suppressed)
        Group 2 Detail 1: 
          ID    Amount (Formula field)
          --   ------- 
           1     100


         Group 2 (Footer)
          ------------
          Total  200
          ------------

         Group 2 Detail 2: 
          ID    Amount (Formula field)
          --   ------- 
           1     300


         Group 2 (Footer)
          ------------
          Total  600
          ------------

Проблема, с которой я сталкиваюсь, заключается в том, что у меня неправильные итоги для поля формулы в нижнем колонтитуле группы 2 (я не могу понять, почему они удваиваются)

Я создаю общее поле за 2 шага. Сначала я создаю переменную внутри раздела сведений группы 2.

Мое поле формулы для суммы

WhilePrintingRecords;

EvaluateAfter({@Share_Hundred_Percent});
EvaluateAfter({@Less_Commission});
EvaluateAfter({@Payment_NICL});
EvaluateAfter({@Payment_PRCL});

shared numberVar sumNetPayable;
numberVar result:=0;

if({Command.GENCLIENTCODE}=990) then
    result:= {@Share_Hundred_Percent}-{@Less_Commission} + {@Payment_PRCL}
else
    result:= {@Share_Hundred_Percent} - {@Less_Commission} ;

sumNetPayable := sumNetPayable + result;
result

Затем я сбрасываю общее поле в нижнем колонтитуле группы 2 (но оно печатает двойную сумму)

Мое поле формулы для отображения суммы

WhilePrintingRecords;
EvaluateAfter({@Net_Payable});

shared numberVar sumNetPayable;
numberVar result:= sumNetPayable;
sumNetPayable :=0;

result

Обновить

@SilentD. Вот что я нашел. Я удалил обе формулы из представления дизайна отчета (детальная формула + сводка). Я только поместил Sum Fomula в нижний колонтитул, и он работает. Но когда я помещаю формулу деталей в отчет, итоги удваиваются


comment
Если результаты удваиваются, формула должна выполняться дважды для каждой записи. Существуют ли какие-либо другие формулы, ссылающиеся на sumNetPayable? Или у вас формула суммы дважды размещена в отчете?   -  person    schedule 04.04.2014
comment
@SilentD хороший комментарий, обновил мой пост новыми выводами.   -  person Zo Has    schedule 04.04.2014
comment
Сумма ({Сумма (поле формулы)}, {в зависимости от того, какое поле в группе}).. Это работает для меня в целом, вы можете настроить его. Проверьте формулу, если в ней нет скрытой странной логики. :)   -  person JulyOrdinary    schedule 04.04.2014
comment
Вы сбрасываете формулу в заголовке группы 2?   -  person Siva    schedule 04.04.2014
comment
Я не понимаю использование `sumNetPayable := sumNetPayable + результат;`   -  person Siva    schedule 04.04.2014
comment
@Siva Я использую формулу для вычисления суммы полей формулы итогов (это мне нужно отобразить в нижнем колонтитуле). Я сбрасываю переменную для сводки в нижнем колонтитуле группы 2.   -  person Zo Has    schedule 04.04.2014
comment
В формуле Amount используйте sumNetPayable := result вместо sumNetPayable := sumNetPayable + result   -  person Siva    schedule 04.04.2014
comment
@Siva, который я использовал для вычисления общей суммы для поля формулы.   -  person Zo Has    schedule 04.04.2014
comment
Я предполагаю, что у вас может быть 2 детали, поэтому, когда вы используете эту формулу, которая вычисляет 2 раза, поэтому я попросил вас попробовать, удалив это.   -  person Siva    schedule 04.04.2014
comment
@Шива, я нашел проблему! На самом деле, если вы видите в моей формуле нижнего колонтитула, у меня есть EvaluateAfter({@Net_Payable});. Я удалил его и все работает нормально. Не могу понять, почему он удваивает цифры.   -  person Zo Has    schedule 04.04.2014
comment
Я рад, что вы решили свою проблему...   -  person Siva    schedule 04.04.2014
comment
@Siva не без твоей помощи.   -  person Zo Has    schedule 04.04.2014
comment
Нет проблем .. добро пожаловать   -  person Siva    schedule 04.04.2014


Ответы (1)


В конце концов, моя проблема была устранена путем удаления EvaluateAfter({@Net_Payable}); из поля формулы, используемого для отображения итогового значения в нижнем колонтитуле группы. По какой-то причине он удваивал расчет.

WhilePrintingRecords;

shared numberVar sumNetPayable;
numberVar result:= sumNetPayable;
sumNetPayable :=0;

result
person Zo Has    schedule 04.04.2014