Рассмотрим миграцию из QuickReport 6 в FastReport VCL.
Сделаем это с помощью обновленного конвертера в составе FastReport VCL, он позволяет сконвертировать ваш шаблон, даже без установленного QuickReport 6 на вашем компьютере.
Конвертор (ConverterQR2FR.pas) имеет следующий список конвертируемых компонентов из QuickReport 6 в FastReport VCL, он представлен в виде таблицы ниже.
QuickReport 6 |
FastReport VCL |
Done |
QuickReport 6 |
FastReport VCL |
Done |
TQuickRep |
TfrxReportPage |
+ |
TQRLineGraph |
TfrxChartView |
+ |
TQRPreviewController |
- |
- |
TQRGrImage |
TfrxPictureView KeepAspectRatio:= true |
+ + |
TQuickAbstractRep |
- |
- |
TQRPDFShape |
- |
- |
TQRSubDetail TQRBand TQRGroup |
TfrxBand |
+ |
TQRFrameline |
TfrxLineView |
+ |
TQRWildBand |
- |
- |
TQRAbsTable |
- |
- |
TQRChildBand |
TfrxChild |
+ |
TQRDBJPGlmage |
TfrxPictureView |
+ |
TQRLoopBand |
TfrxMasterData.RowCount |
+ |
TQRPQuickrep |
TfrxReportPage |
+ |
TQRStringsBand |
- |
- |
TQRPBand |
TfrxBand |
+ |
TQRLabel TQRDBText TQRExpr TQRSysData TQRMemo TQRExprMemo |
TfrxMemoView |
+ |
TQRPChildBand |
TfrxChild |
+ |
TQRGraphicCanvas |
TfrxPictureView |
+ |
TQRPLabel |
TfrxMemoView |
+ |
TQRMetriclabel |
- |
- |
TQRPDBText |
TfrxMemoView |
+ |
TQRHTMLLabel |
Memo allowHTMLTegs = true |
+ |
TQRPDBlmage |
TfrxPictureView |
+ |
TQRDMBarcode TQRDbDMBarcode |
TfrxBarcode2DView BarType := bcCodeDataMatrix |
+ + |
TQRPExpr |
TfrxMemoView |
+ |
TQRQRBarcode |
TfrxBarcode2DView |
+ |
TQRPMemo |
TfrxMemoView |
+ |
TQRQRDBBarcode |
TfrxBarcode2DView |
+ |
TQRPRichtext |
TfrxRichView |
+ |
TQRRichText |
TfrxRichView |
+ |
TQRPGrid |
- |
- |
TQRShape |
TfrxShapeView |
+ |
TQRPCheckBox |
- |
- |
TQRlmage TQRDBlmage |
TfrxPictureView |
+ |
TQRPShape |
TfrxShapeView |
+ |
TQRCompositeReport |
- |
- |
TQRPExprCheckbox |
- |
- |
TQRXMLSSFilter |
- |
- |
TQRStringgridReport |
- |
- |
TQRPreview |
- |
- |
TQRGridReport |
- |
- |
TQRColorBox |
- |
- |
TEnhancedlistbox |
- |
- |
TQRExpBarChart |
- |
- |
|
|
|
Конвертация из QuickReport 6 в FastReport VCL 6.
Выберем нужную форму Delphi формата *.dfm, на которой расположен объект TQuickRep, в котором сконструирован нужный нам отчет. Либо шаблон отчета для дизайнера QuickReport в формате *.qr2.
Сделаем простой конвертер, состоящий из формы, пары компонентов и одной кнопки.
Для этого выполним следующий список действий:
1. Создадим новую программу (File -> New -> VCL Forms Application).
2. В список Uses добавьте ConverterQR2FR.
3. В зависимости от установленных компонентов может потребоваться удалить следующие блоки из списка Uses в ConverterQR2FR.pas:
VCLTee.TeeProcs, VCLTee.TeEngine, VCLTee.Chart, VCLTee.Series, VCLTee.TeCanvas
frxChart, frxBDEComponents, frxIBXComponents
4. Добавьте на форму следующие компоненты:
5. Поместите данный код в событие OnClick кнопки:
Код:
1 2 3 4 5 6 7 8 9 |
procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then if frxReport1.LoadFromFile(OpenDialog1.FileName) then if SaveDialog1.Execute then frxReport1.SaveToFile(SaveDialog1.FileName); frxReport1.LoadFromFile(SaveDialog1.FileName); frxReport1.DesignReport(); end |
6. Запустите программу.
Если вы сделали все правильно, приложение запустится, и нужно, будет нажать на кнопку на форме.
Далее появится диалоговое окно открытия файла, откройте нужную форму Delphi формата *.dfm, содержащую объект TQuickRep, либо шаблон отчета для дизайнера QuickReport в формате *.qr2.
Затем произойдет конвертация вашего шаблона, если она произошла успешно, перед вами появится диалоговое окно сохранения шаблона, сохраните его в формате *.fr3.
Этот сконвертированный шаблон автоматически откроется в дизайнере FastReport VCL, убедитесь в правильной конвертации.
Если к вашему шаблону был прикреплен DataSet. вам необходимо прикрепить его к шаблону FastReport VCL для корректного отображения данных при построении отчета.
Ниже рассмотрим на примере со скриншотами конкретную конвертацию формы Delphi формата *.dfm, содержащую объект TQuickRep в шаблон отчета FastReport VCL.
Для примера построим шаблон QR на форме invform.dfm.
К которому в проекте прикреплен DataSet через ADOConnection1, ADOTable1 и DataSource1.
Выполним следующие действия:
1. Запустим наш простой конвертор.