如何在Delphi中將CSV文件作為數(shù)據(jù)集連接并使用FastReport VCL建立報告
報表生成器FastReport VCL是用于在您的軟件中集成商務(wù)智能的現(xiàn)代解決方案。它提供了可視化模板設(shè)計器,可以訪問最受歡迎的數(shù)據(jù)源,報告引擎,預(yù)覽,將過濾器導(dǎo)出為30多種格式,并可以部署到云,Web,電子郵件和打印中。
近日,F(xiàn)astReport VCL升級到v6.6版,在此版本中,所有面板隱藏在“Data Tree”數(shù)據(jù)樹,添加了新的線性條形碼類型:Pharmacode,改進(jìn)了預(yù)覽窗口中的搜索,感興趣的朋友可點擊下方按鈕下載最新版。
您可以點擊此處,下載本文教程完整的演示Demo。
可能許多人遇到了在DELPHI中使用CSV文件作為數(shù)據(jù)集的問題。讓我們看一下解決此問題的一種方法。我們將通過TADOQuery連接CSV文件,并在FastReport VCL 6中根據(jù)此數(shù)據(jù)生成報告。
創(chuàng)建一個項目并添加以下組件。
OHLC_Query : TADOQuery ; OHLC_Source : TDataSource ; OHLC_DB : TfrxDBDataset ; frxReport1 : TfrxReport ; frxDesigner1 : TfrxDesigner ; frxChartObject1 : TfrxChartObject ; ButtonShowReport : TButton ; ButtonDesignReport : TButton ;
要連接到CSV文件,我們將使用OHLC_Query:TADOQuery組件。
通過設(shè)置ConnectionString屬性進(jìn)行設(shè)置:
OHLC_Query.ConnectionString :=’Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\;Extended Properties="text;";Persist Security Info=False’
接下來,還需要根據(jù)Microsoft網(wǎng)站上的文檔編寫Schema.ini文件(https://docs.microsoft.com/zh-cn/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-ver15),并將其添加到項目文件夾。
讓我們分析示例CSV文件(EURUSD_200201_200410.csv)的示例,它具有以下結(jié)構(gòu):
數(shù)據(jù)使用“;”分隔。數(shù)據(jù)以更直觀的形式顯示,共有9列:
讓我們創(chuàng)建一個文本文件并將其另存為schema.ini。
根據(jù)Microsoft網(wǎng)站上的文檔(https://docs.microsoft.com/zh-cn/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-ver15),此文件應(yīng)具有以下結(jié)構(gòu):
[EURUSD_200201_200410.csv] ColNameHeader=True Format=Delimited(;) DecimalSymbol=. TextDelimiter=' CharacterSet=ANSI DateTimeFormat=yyyymmdd Col1=TICKER char Col2=PER integer Col3=DATE date Col4=TIME char Col5=OPEN float Col6=HIGH float Col7=LOW float Col8=CLOSE float Col9=VOL integer
為OHLC_Source和OHLC_DB設(shè)置必要的設(shè)置:
OHLC_Source.DataSet := OHLC_Query; OHLC_DB.DataSource := OHLC_Source; OHLC_DB.UserName := 'OHLC';
創(chuàng)建一個模板并將其另存為DemoCSV.fr3
并將數(shù)據(jù)集連接到模板
接下來,添加ButtonDesignReportClick,ButtonShowReportClick和FormCreate事件:
procedure TFormDemoCSV.ButtonDesignReportClick(Sender: TObject); begin frxReport1.DesignReport; end; procedure TFormDemoCSV.ButtonShowReportClick(Sender: TObject); begin frxReport1.ShowReport(); end; procedure TFormDemoCSV.FormCreate(Sender: TObject); begin frxReport1.LoadFromFile('./DemoCSV.fr3') end;
啟動應(yīng)用程序
當(dāng)單擊ButtonShowReport按鈕時,將生成一個報告。
恭喜,您已將CSV文件作為數(shù)據(jù)集包含在Delphi中,并根據(jù)此數(shù)據(jù)在FastReport VCL 6中構(gòu)建了一個報告!
還想要更多嗎?您可以點擊閱讀【FastReport 報表2019最新資源盤點】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入FastReport技術(shù)交流群(783996712),我們很高興為您提供查詢和咨詢。