Примечание:
Во внимание не принимались особые "навороченные" Grid'ы (например компоненты EhLib v.1.56 ( сайт Torry) , ExDBGrid (сайт DelphiCity) и многие другие) , которые в частности могут печатать сами себя.
Нужен был именно компонент-связка, который печатает содержимое для любого наследника TDBGrid.
Название | Print DBGrid v.1.0 |
URL | Раздел VCL страница Grids -> Other http://www.torry.ru/gridsother.htm http://www.torry.ru/vcl/grids/other/oddataprn.zip |
Распространение | ShareWare, с исходными кодами |
IDE | Delphi 3 ; У меня работал в Delphi 5. |
TDataPrintеr
Компонент TDataPrintеr настраивается на TDataSource.Общий формат отчета:
Title | |
Script1 Script2 ... ScriptN | |
HeaderColumn1 | HeaderColumn2 ... |
Column1Record1 | Column1Record2 ... |
... | ... |
Column1RecordM | Column1RecordM ... |
К недостаткам можно отнести следующее:
Хотя автор и обещает, что печататься будут "любые данные" ("...with any data in it"), при печати memo-полей длина текста ограничена свойством DisplayWidth соответствующего поля и одной строкой, что несколько неудобно. И вывести на печать изображение из поля, содержащего графику мне тоже не удалось.
С точки зрения оформления - отсутствует возможность печати сетки. Но может это и не есть недостаток.
В качестве резюме:
Компонент очень прост в использовании. Наличие исходных текстов дает возможность довольно легко добавить в отчет некоторые детали оформления.
Название | LPTGrd / LPTBGrd v.1.0 |
URL | Раздел VCL страница Print VCL -> Print Tools http://www.torry.ru/printtools.htm http://www.torry.ru/vcl/print/printtools/lptgrd.zip |
Распространение | Коммерческий; Trial (work while IDE is running) |
IDE | Delphi 1,2,3 ; У меня работал в Delphi 5 |
Довольно интересный компонент. Настраивается на TDBGrid.
Несколько экспериментов с разными данными для этого компонента показали, что хотя и обещается печать грида, но для вывода названий полей используется поле TField.DisplayLabel и для ширины колонки отчета поле TField.DisplayWidth. Логичнее (и удобнее !) было бы использовать в качестве названия колонки именно Columns.Title.Caption, а для ширины колонки Columns.Width. Вот тогда печатался бы как раз тот обещанный TDBGrid, который можно перестроить в run-time и напечатать так, как он и выглядит. И еще, при использовании деталей PageFooterCenter, PageFooterLeft и PageFooterRight надо быть осторожнее, так как никаких ограничений на их ширину нет и никакого взаимодействия (внутренних проверок) между ними тоже нет. То есть, задав значения этих полей очень длинными, можно получить некрасивую картину из наложенных друг на друга строк. Резюме: |
Название | QRByDataSet and TQRByGrid v.1.00 |
URL | Раздел VCL страница Report -> Report Tools http://www.torry.ru/reportdesigners.htm http://www.torry.ru/vcl/reports/reportdesigners/reportds.zip |
Распространение | Свободный, с исходными кодами |
IDE | Delphi 3,4,5 ; |
Поначалу меня порадовали эти компоненты. Довольно просты в применении и работают аккуратно. Как видно из названия один настраивается на TDataSet, другой на TDBGrid. Для их использования обязательно должен быть установлен QuickReport, для формирования отчета для печати используется именно он. Так как QuickReport есть в стандартной поставке Delphi, то недостатком это считать нельзя. Зато можно легко пользоваться режимом Preview с возможностью выбора и настройки принтера, ну и так далее. К недостаткам можно отнести следующее:
|
Название | Print Record v.1.0 |
URL | Раздел VCL страница Print VCL -> Print Tools http://www.torry.ru/printtools.htm http://www.torry.ru/vcl/print/printtools/printrec.zip |
Распространение | Свободный, исходные коды |
IDE | Delphi 2,3 ; У меня работал в Delphi 5 |
Общий формат отчета таков:
<картинка>Header header ... и так несколько строк | |
Название поля №1: | Содержание поля... |
... | ... |
Название поля №n: | Содержание поля... |
В качестве резюме:
Если строка набора данных представляет собой нечто вроде "личного дела" или "учетной карточки" и т.д., то такой вариант печати довольно удобен.К сожалению не нашлось такого компонента, применение которого бы полностью решило поставленную задачу, без переделки его исходного кода.
Елена Филиппова
Основная страница | Свитки | Сокровищница | Подземелье Магов | Hello, World! | Арсенальная башня |