Вы уже создаете необходимые промежуточные суммы в каждом из первых трех таблиц (через группу я думаю). В событии создания сценариев для ячейки таблицы с вашим итоговым итогом установите постоянную глобальную переменную для отслеживания каждого подтаблица. Затем вы можете получить доступ к каждому значению в четвертой и финальной таблице.
Чтобы установить переменный:
var totalValue = this.getDataRowData().getColumnValue("totalColumnName");
reportContext.setPersistentGlbalVariable("DataSet1Total", totalValue.toString());
ПРИМЕЧАНИЯ: Вам нужно будет отправить итог к типу «String» для обеспечения сериализации. Вы можете преобразовать его обратно в число при рендеринге итоговой итоговой таблицы.
Чтобы использовать переменную, добавьте текстовый элемент управления в свой отчет (в ячейке в сводной таблице). В OnCreate случае сценариев для управления текстом введите следующее:
this.text = reportContext.getPersistentGlobalVariable("DataSet1Total");
Вы бы сделать это для каждого суммарного поля вы сохранили ранее. Тогда для общего итога, вы можете сделать это:
this.text = parseInt(getPersistentGlobalVariable("DataSet1Total")) + parseInt(getPersistentGlobalVariable("DataSet2Total")) + parseInt(getPersistentGlobalVariable("DataSet3Total"));
упорным глобальным переменным просто сериализации значения, которое можно получить доступ через границу компонентов внутри отчета. Он может очень пригодиться для требований, подобных вашим.
Удачи!
Я пробовал это сделать, и он, похоже, не работает. Мои итоговые данные набора данных представляют собой агрегаты таблицы (функция SUM) - поле находится в нижнем колонтитуле. Я попытался добавить код в методе Render таблицы, который, похоже, не работает. Я попытался добавить его к методу Render в текстовом поле в нижнем колонтитуле, и это тоже не сработает. Любые предложения о том, что я могу сделать неправильно/как исправить, приветствуются – shikarishambu