#.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])