Использование отчетов

zz 5zz 5 Россия, Москва
отредактировано 03:46 Раздел: FastReport 3.0
Здраствуйте. Вот такой вопрос возник. Имеется ли в FASTReports такой режим заполнения шаблона с таблицей. Допустим, имеется шаблон, в котором есть несколько строк, которые тиражируются. Одни для заголоков, другие итоговые. Можно ли заполнять шаблон вручную, т.е. мы идем циклом по НД и на каждой записи мы выполняем соотвествующую команду по добавлению определенной строки с определенным текстом в шаблон. Фактически, мы вручную указываем, какую добавить строчку (номер по шаблону) и с каким текстом.
Просто пока мы еще не используем FastReports. Бегло погоняв демки, я понял, что вывод отчетов конкретно привязан к НД. Но у нас отчеты бывают очень сложными, где записи группируются не по смене значения какого-либо поля, а на основе выполнения какой-то процедуры, алгоритма. Фактически, сейчас мы вручную строим отчеты. В этом и заключается вопрос, можно ли реализовать что-то подобное в Fast ?

Если не очень понятно, готов объяснить более подробно ;)

Комментарии

  • FokewolfFokewolf Киев
    отредактировано 03:46
    Да уж, пожалуйста поподробнее. И что такое НД?
  • gpigpi
    отредактировано May 2006
    написал:
    И что такое НД?
    Я думаю, набор данных ;)
    zz 5
    Посмотрите в руководстве программиста тему Построение отчета с помощью кода, а также используйте событие TfrxReport OnGetValue
  • zz 5zz 5 Россия, Москва
    отредактировано 03:46
    2Fokewolf
    Да, это набор данных ;)

    Обяъсняю подробнее. Есть шаблон с таблицей. В таблице помимо шапки имеется несколько видов строк, которые могут отличаться форматированием текста, количеством колонок, видом ячеек. Они носят названия "статусных" строк и идентифициируются номером по счету в таблице шаблона. В программе, когда мы заполняем данный шаблон, мы просто указываем какую статусную строчку добавить в таблицу отчета и с каким текстом. Т.е. получается нет жесткой связи с TDataset. Вся работа лежит на программисте. Не всегда это удобно, но существуют шаблоны очень сложные, которые заполняются по сложному алгоритму, поэтому нельзя взять и просто привязать к НД. По такому принципу построены ВСЕ отчеты в нашем комплексе (порядка 100). Сейчас мы всерьез прорабатываем возможность использования FastReports, но нужно оценить, во-первых, масштабы бедствия, а во-вторых, сможем ли мы с этим инструментом переделать ВСЕ наши отчеты.

    2gpi
    Спасибо, посмотрю
  • отредактировано 03:46
    Если я правильно понял, то в поле надо вывести переменную, рассчитанную в скрипте.

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

    Выставляем заголовок GroupHeader по этому полю, формируем MasterData. Затем создаем переменную в Variables (назовем ее NewVar1) и выставляем ей начальное значение (для примера = 1).
    У GroupHeader'а кодируем событие OnAfterPrint (в зависимости как данные надо вывести), для примера:
    void GroupHeader1OnAfterPrint(TfrxComponent Sender)
    {
    Set ("NewVar1", Get("NewVar1") + 1);
    }

    Вот так на простеньком примере.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.