Нужно использовать функцию SUM, но нужно учесть следующее (цитата из руководства пользователя стр. 63)
написал:
Итак, каков принцип работы агрегатных функций? Перед построением
отчета FastReport сканирует содержимое объектов "Текст" с целью нахождения
агрегатных функций. Найденные функции привязываются к соответствующим
дата-бэндам (в нашем примере функция SUM привязывается к бэнду MasterData1).
т.е. нужно во вложенном отчёте добавить подвал, на него положить Мемо, а в Мемо вывести на печать сумму, а в скрипте присвоить переменной значение этой суммы. Мемо можно сделать невидимым. Так же нужно поступить и в главном отчёте. Просто использовать агрегатные функции в скрипте не получается, а жаль
Можно поподробнее, а то не получается. Сделал Footer, положил там мемо, вывел там сумму, сделал его невидимым, а как присвоить переменной это значение ?
Да блин, че вы все время отсылаете. Серьезно не получается если.
Все сделал как написали, подсчитал сумму во вложенном отчете, он ее считает,а не выводится на главном отчете, выводится тока 0 всегда, после присвоений
В дизайнере заходишь в список переменных (кнопка Fx или меню Отчёт - Переменные), создаёшь категорию, если её нет, создаёшь переменную, переименовываешь её в summa1, нажимаешь кнопку ОК
Все равно ничего не выводит! во вложенном отчете все считает и там выводит, а если я создаю мемо на главном, и пишу там [summa1], то не выводит ничего на главном отчете!
Посмотрел отчёт.
Проблема в том, что сумма, рассчитанная во вложенном отчёте печатается на том же бэнде, что и сам вложенный отчёт. Нужно сумму печатать на следующем или дочернем бэнде.
Тебя это не устроит, форма отчёта нарушится. В твоём конкретном случае можно попробовать сделать отчёт двухпроходным.
А в общем случае я вижу один выход: делаем два вложенных отчёта. Один на бэнде, второй - на дочернем бэнде. Тот, который на бэнде с высотой = 0, на его МаsterData нет ничего, высота МаsterData=0, на футере располагается Мемо с функцией суммирования, высота Мемо=0, Мемо не растягивается по высоте, высота футера=0, т.е. нужно сделать всё, чтобы вложенный отчёт на бэнде печатался с нулевой высотой, но вычислял сумму. На дочернем бенде всё, как обычно
Комментарии
Set('summa1',SUM(fieldName,band));
В мемо тоже должно быть [SUM(fieldName,band)];
Все сделал как написали, подсчитал сумму во вложенном отчете, он ее считает,а не выводится на главном отчете, выводится тока 0 всегда, после присвоений
Проблема в том, что сумма, рассчитанная во вложенном отчёте печатается на том же бэнде, что и сам вложенный отчёт. Нужно сумму печатать на следующем или дочернем бэнде.
Тебя это не устроит, форма отчёта нарушится. В твоём конкретном случае можно попробовать сделать отчёт двухпроходным.
А в общем случае я вижу один выход: делаем два вложенных отчёта. Один на бэнде, второй - на дочернем бэнде. Тот, который на бэнде с высотой = 0, на его МаsterData нет ничего, высота МаsterData=0, на футере располагается Мемо с функцией суммирования, высота Мемо=0, Мемо не растягивается по высоте, высота футера=0, т.е. нужно сделать всё, чтобы вложенный отчёт на бэнде печатался с нулевой высотой, но вычислял сумму. На дочернем бенде всё, как обычно