Рекомендации по разработке отчетов

Top  Previous  Next

В этом разделе будут даны рекомендации по разработке отчетов, предназначенных для экспорта в другие форматы данных.

 

FastReport предлагает широкие возможности для манипуляции объектами при создании отчета, что дает заметное преимущество при быстрой разработке любых отчетов и последующей их печати на принтере. Отпечатанный документ будет выглядеть точно так же, как и на экране, что и является основной целью применения генератора отчетов FastReport.

 

Обратная сторона такой свободы разработки – сложность экспорта полученного документа в различные форматы данных, имеющие свои, иногда довольно существенные, ограничения в представлении информации. Очень многие форматы используют табличное представление данных. Речь идет о таких форматах, как HTML, XLS, RTF, CSV. Никакие пересечения или наслоения ячеек в подобных форматах недопустимы (если брать в рассмотрение именно табличную разметку, это касается HTML и RTF).

 

Фильтры экспорта, как правило, максимально учитывают эти требования при экспорте объектов. Это реализуется при помощи специальных алгоритмов учета пересечений объектов и оптимального их расположения. В местах пересечений объектов возникают новые столбцы и строки в результирующей таблице. Это необходимо для получения максимального сходства результата экспорта и оригинального отчета. Большое количество пересекающихся объектов в отчете приводит к росту числа столбцов и строк в таблице, что замедляет процесс экспорта и усложняет использование результирующего файла.

 

Качество экспорта в тот или иной формат сильно зависит от грамотной разработки шаблона отчета. Рассмотрим следующий отчет:

 

badFormedReport1

 

При разработке этого отчета было допущено пересечение двух объектов, находящихся на одном бэнде. Предположим, что число записей при формировании отчета составило 150. Тогда при экспорте в формат RTF будет создано 450 строк в результирующей таблице (150 строк на каждый объект и 150 строк на пересечение). Если пересечение устранить, количество строк будет уже 300. На больших отчетах и при большем количестве объектов разница будет просто огромной, что, соответственно, скажется и на размере выходного файла.

 

При создании таблиц в отчетах проследите, чтобы границы соседних ячеек соприкасались друг с другом, но не пересекались или наслаивались. Алгоритм фильтра экспорта сделает отсечение ячеек, но результат экспорта может быть далек от желаемого (вы увидите не совсем то, что хотели). Располагайте объекты так, чтобы они находились на одной линии, как по вертикали, так и по горизонтали.

 

Избежать перекрытия ячеек может помочь выравнивание объектов по сетке. Проследите за тем, чтобы было включено выравнивание по сетке в опциях дизайнера. Для упрощения выравнивания можно увеличить шаг сетки. Настройки шага сетки и выравнивания можно найти в меню дизайнера «Вид|Настройки...»:

 

snapToGrid

 

Для обрамления текста рамкой лучше использовать рамку объекта "Текст", а не отдельные графические объекты – линии, прямоугольники и пр. Старайтесь не использовать фоновых объектов под прозрачными текстовыми объектами.

 

Применение этих простых правил на практике поможет вам создать отчет, который будет прекрасно выглядеть после экспорта в любой из форматов, которые используют табличную (или основанную на табличной) разметку для представления данных.