Формула подразделения Crystal Reports не рассчитывается как требуется - PullRequest
1 голос
/ 14 марта 2012

Я в одном шаге от завершения отчета в Crystal 2008. Я включил снимок отчета ниже.Почему-то я не могу получить формулу в желтом столбце для правильного расчета.Я пытаюсь разделить значение Чистой А для каждого основного источника данных / года на общую сумму Чистой А в году, чтобы получить% данных для каждого Основного источника данных.Сеть A извлекает данные из поля в доступе, а итоговая сумма сети A представляет собой промежуточную сумму, основанную на текущей дате выполнения с использованием формулы ({HNT_End_To_End_Data.REPT_YYMM} = cStr(currentdate,'yyMM') в разделе оценки промежуточной суммы, и поле сбрасывается при каждом изменении года.

Формула в желтом столбце в настоящее время ({HNT_End_To_End_Data.Net_A}/Sum ({HNT_End_To_End_Data.Net_A}))*100 и показывает значения, которые, как это делает NetA, делится на общую сумму Net A за все 3 года (3 727 560/108 666 439), а не на отдельныегод (3 727 560/34 981 163).Я пытаюсь получить формулу для разделения каждого основного источника данных за каждый год на итоговую чистую сумму за год.

Я пробовал делать много разных формул, но безуспешно, поэтому буду признателен всем за любые предложения.может иметь.

enter image description here

1 Ответ

1 голос
/ 15 марта 2012

У вас есть группа на year({sometable.somedate})?Вам нужно добавить эту группу в вашу функцию агрегирования (суммы):

(
 {HNT_End_To_End_Data.Net_A} 
 / 
 Sum({HNT_End_To_End_Data.Net_A}, year({sometable.somedate}))
) * 100

РЕДАКТИРОВАТЬ : После просмотра отчета я вижу, что вы используете условную формулу {HNT_End_To_End_Data.REPT_YYMM} <> cStr(currentdate,'yyMM') для подавленияподробный раздел.Так что SUM({HNT_End_To_End_Data.Net_A},{HNT_End_To_End_Data.SERVICE_THRU_YEAR}) на самом деле включает в себя записи, которые не отображаются.У вас есть несколько способов обойти это.Возможно, самое простое - создать новую формулу для net_a:

if {HNT_End_To_End_Data.REPT_YYMM} <> cStr(currentdate,'yyMM') then
 {HNT_End_To_End_Data.Net_A}
else
 0;

. Затем вы можете сделать:

(
 {HNT_End_To_End_Data.Net_A} 
 / 
 Sum({@net_a}, year({sometable.somedate}))
) * 100
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...