Как сгруппировать значения в вычисляемом поле в группе подробностей DevExpress XtraReport?

#.net #crystal-reports #devexpress #xtrareport

#.net #crystal-отчеты #devexpress #xtrareport

Вопрос:

Я пытаюсь перенести отчет из Crystal Reports в Repx и разработать отчет в DevExpress XtraReports.

Существующий код Crystal Reports выглядит следующим образом:

 if {Balance} = 0 then 0 
else if IsNull({Series}) Then ({Balance} / Sum ({Balance}, {ID})*100) -- Grouped by ID on this line
else ({Balance} / Sum ({Balance}, {Series})*100) -- Grouped by Series on this line
  

Я попытался имитировать этот код и переместить его в XtraReports и получил следующее..

 Iif([Balance] = 0, '0', 

Iif(IsNull([Series]), (([Balance] / Sum([Balance])) * 100), 

([Balance] / Sum([Balance])) * 100)) -- As you can see on this and the above line I am missing the group 
                                     -- by "ID" and "Series" I don't believe the syntax exists in XtraReports. 

  

Это выполняется в детальном бэнде, поэтому нельзя использовать обычные методы для добавления верхнего / нижнего колонтитула группы и т.д.

Возможно ли сгруппировать, как в примере Crystal Report, в XtraReports?

Ответ №1:

Оператор обхода родительских отношений (‘^’) позволяет сравнивать значение группы из обработанной группы со значением текущей обработанной записи в выражении. Если отчет сгруппирован по ID столбцам, и вы хотите суммировать Balance значение столбца для текущей обрабатываемой группы в детальном бэнде, используйте следующее выражение (замена Sum ({Balance}, {ID}) функции):

[][[ID] = [^.ID]].Sum([Balance])