今天,我們將研究從QuickReport 6到FastReport VCL 6的遷移。
讓我們使用FastReport VCL 6.3中包含的更新的Converter來完成它,即使您沒有在計算機上安裝QuickReport 6,它也可以轉換您的模板。
轉換器(ConverterQR2FR.pas)具有從QuickReport 6到FastReport VCL 6的以下可轉換組件列表,在下表中列出。
QuickReport 6 | FastReport VCL 6 | Done | QuickReport 6 | FastReport VCL 6 | Done |
---|---|---|---|---|---|
TQuickRep | TfrxReportPage | + | TQRLineGraph | TfrxChartView | + |
TQRPreviewController | - | - | TQRGrImage 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 TQRDBRichText |
TfrxRichView | + | TQRPGrid | - | - |
TQRShape | TfrxShapeView | + | TQRPCheckBox | - | - |
TQRlmage TQRDBlmage |
TfrxPictureView | + | TQRPShape | TfrxShapeView | + |
TQRCompositeReport | - | - | TQRPExprCheckbox | - | - |
TQRXMLSSFilter | - | - | TQRStringgridReport | - | - |
TQRPreview | - | - | TQRGridReport | - | - |
TQRColorBox | - | - | TEnhancedlistbox | - | - |
TQRExpBarChart | - | - |
從QuickReport 6到FastReport VCL 6的轉換。
選擇*.dfm格式的Delphi格式,您可以在其中找到TQuickRep對象,並在其中構建我們需要的報表。或選擇*.qr2格式的QuickReport 6設計器的報表模板。
我們將製作一個由表單、一對組件和一個按鈕組成的簡單轉換器。
執行以下操作列表:
1.創建一個新的應用程序(File -> New -> VCL Forms Application)。
2.在Uses子句中輸入ConverterQR2FR。
3.根據安裝的組件,您可能需要從ConverterQR2FR.pas的Uses子句中刪除以下塊:
VCLTee.TeeProcs, VCLTee.TeEngine, VCLTee.Chart, VCLTee.Series, VCLTee.TeCanvas
frxChart, frxBDEComponents, frxIBXComponents
4.將以下組件拖放到表單中:
- frxReport
- OpenDialog
- SaveDialog
- Button
- frxDesigner
5.將此代碼放在按鈕的OnClick事件中:
代碼:
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.運行應用程序。
如果您正確執行了所有操作,則該應用程序將啓動,並且您需要單擊表單上的一個按鈕。
然後將出現一個用於打開文件的對話框,打開*.dfm格式的必需Delphi格式,其中包含TQuickRep對象,或者以*.qr2格式打開QuickReport 6設計器的報表模板。
然後將轉換您的模板,如果成功完成,將在您面前出現一個用於保存模板的對話框,將其保存爲*.fr3格式。
轉換後的模板將在FastReport VCL設計器中自動打開,但請確保轉換正確。
如果將DataSet附加到模板,則需要在構建報表時將其附加到FastReport VCL模板以正確顯示數據。
轉換包含TQuickRep的Delphi表單(*.dfm)的示例
對象,以模板報表FastReport VCL 6(*.fr3)
下面,使用屏幕快照示例,我們將考慮*.dfm格式的Delphi格式的特定轉換,該格式將TQuickRep對象包含到FastReport VCL報表模板中。
例如,讓我們在invform.dfm表單上構建QR模板。
我們通過ADOConnection1,DataSource1和Table1將DataSet連接到它。
按着這些次序:
1.讓我們運行簡單的Converter。
2.按下測試Test按鈕。
3.出現打開文件對話框時,打開表格Invform.dfm。
4.然後等待模板的轉換。如果成功,您將看到一個對話框,用於保存模板,將其保存爲*.fr3格式,例如invform.fr3。
5.然後,轉換後的模板將在FastReport VCL 6設計器中自動打開,並確保轉換正確。
6.將frxReport1和frxDBDataset1組件拖放到窗體中
7.在frxDBDataset1組件中,將屬性DataSource更改爲DataSource1,將UserName更改爲ADOTable1。
8.現在,我們需要將保存的模板加載到FastReport VCL Designer中。 雙擊FastReport VCL組件,然後在報表設計器中打開保存的模板“invform.fr3”。
9.轉到FastReport VCL設計器報表→“數據”菜單,然後選擇ADOTable1數據集。
10.我們還需要將此DataSet綁定到數據段。因此,雙擊MasterDataBand並選擇ADOTable1數據集。
11.在FastReport VCL 6中生成報表。