Использование отчетов
zz 5
Россия, Москва
Здраствуйте. Вот такой вопрос возник. Имеется ли в FASTReports такой режим заполнения шаблона с таблицей. Допустим, имеется шаблон, в котором есть несколько строк, которые тиражируются. Одни для заголоков, другие итоговые. Можно ли заполнять шаблон вручную, т.е. мы идем циклом по НД и на каждой записи мы выполняем соотвествующую команду по добавлению определенной строки с определенным текстом в шаблон. Фактически, мы вручную указываем, какую добавить строчку (номер по шаблону) и с каким текстом.
Просто пока мы еще не используем FastReports. Бегло погоняв демки, я понял, что вывод отчетов конкретно привязан к НД. Но у нас отчеты бывают очень сложными, где записи группируются не по смене значения какого-либо поля, а на основе выполнения какой-то процедуры, алгоритма. Фактически, сейчас мы вручную строим отчеты. В этом и заключается вопрос, можно ли реализовать что-то подобное в Fast ?
Если не очень понятно, готов объяснить более подробно
Просто пока мы еще не используем FastReports. Бегло погоняв демки, я понял, что вывод отчетов конкретно привязан к НД. Но у нас отчеты бывают очень сложными, где записи группируются не по смене значения какого-либо поля, а на основе выполнения какой-то процедуры, алгоритма. Фактически, сейчас мы вручную строим отчеты. В этом и заключается вопрос, можно ли реализовать что-то подобное в Fast ?
Если не очень понятно, готов объяснить более подробно
Комментарии
zz 5
Посмотрите в руководстве программиста тему Построение отчета с помощью кода, а также используйте событие TfrxReport OnGetValue
Да, это набор данных
Обяъсняю подробнее. Есть шаблон с таблицей. В таблице помимо шапки имеется несколько видов строк, которые могут отличаться форматированием текста, количеством колонок, видом ячеек. Они носят названия "статусных" строк и идентифициируются номером по счету в таблице шаблона. В программе, когда мы заполняем данный шаблон, мы просто указываем какую статусную строчку добавить в таблицу отчета и с каким текстом. Т.е. получается нет жесткой связи с TDataset. Вся работа лежит на программисте. Не всегда это удобно, но существуют шаблоны очень сложные, которые заполняются по сложному алгоритму, поэтому нельзя взять и просто привязать к НД. По такому принципу построены ВСЕ отчеты в нашем комплексе (порядка 100). Сейчас мы всерьез прорабатываем возможность использования FastReports, но нужно оценить, во-первых, масштабы бедствия, а во-вторых, сможем ли мы с этим инструментом переделать ВСЕ наши отчеты.
2gpi
Спасибо, посмотрю
Например, есть набор данных, который группируется по полю (скажем, Name) и надо выводить не значение этого поля, а какие-то свои расчитанные данные, а все остальные - из НД.
Выставляем заголовок GroupHeader по этому полю, формируем MasterData. Затем создаем переменную в Variables (назовем ее NewVar1) и выставляем ей начальное значение (для примера = 1).
У GroupHeader'а кодируем событие OnAfterPrint (в зависимости как данные надо вывести), для примера:
void GroupHeader1OnAfterPrint(TfrxComponent Sender)
{
Set ("NewVar1", Get("NewVar1") + 1);
}
Вот так на простеньком примере.