Wie man eine CSV-Datei als DataSet in Delphi verbindet und einen Bericht mit FastReport VCL 6 erstellt

Wahrscheinlich sind viele schon einmal auf das Problem gestoßen, eine CSV-Datei als DataSet in Delphi zu verwenden.

Lassen Sie uns einen Blick auf eine der Lösungen für dieses Problem werfen. Wir werden die CSV-Datei über TADOQuery verbinden und einen Bericht aus diesen Daten in FastReport VCL 6 erstellen.

Erstellen Sie ein Projekt und fügen Sie die folgenden Komponenten hinzu.

1
2
3
4
5
6
7
8
OHLC_Query: TADOQuery;
OHLC_Source: TDataSource;
OHLC_DB: TfrxDBDataset;
frxReport1: TfrxReport;
frxDesigner1: TfrxDesigner; 
frxChartObject1: TfrxChartObject;
ButtonShowReport: TButton;
ButtonDesignReport: TButton;

 

Um eine Verbindung zur CSV-Datei herzustellen, verwenden wir die Komponente OHLC_Query: TADOQuery-Komponente.

Richten Sie sie ein, indem Sie die Eigenschaft ConnectionString setzen:

1
OHLC_Query.ConnectionString :=’Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\;Extended Properties="text;";Persist Security Info=False

Als Nächstes müssen Sie die Datei "Schema.ini" gemäß der Dokumentation auf der Microsoft-Website erstellen: 

https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-ver15

Und fügen Sie sie dem Projektordner hinzu.

Analysieren wir das Beispiel unserer Demo-CSV-Datei (EURUSD_200201_200410.csv), sie hat die folgende Struktur:

Die Daten werden mit dem ";" getrennt

Die Daten werden in einer anschaulicheren Form dargestellt, sie haben 9 Spalten:

Erstellen wir eine Textdatei und speichern sie als schema.ini

Diese Datei sollte laut der Dokumentation auf der Microsoft-Website folgenden Aufbau haben:

https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-ver15

schema.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[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

Nehmen Sie die notwendigen Einstellungen für OHLC_Source und OHLC_DB vor: 

1
2
3
OHLC_Source.DataSet := OHLC_Query;
OHLC_DB.DataSource := OHLC_Source;
OHLC_DB.UserName := 'OHLC';

Erstellen Sie eine Vorlage und speichern Sie sie als DemoCSV.fr3 

Design DemoCSV.fr3

Und verbinden Sie das DataSet mit der Vorlage

   

Als nächstes fügen Sie die Ereignisse ButtonDesignReportClick, ButtonShowReportClick und FormCreate hinzu: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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;

Anwendungen starten

Wenn Sie auf die Schaltfläche ButtonShowReport klicken, wird ein Bericht erstellt.

Herzlichen Glückwunsch, Sie haben die CSV-Datei als DataSet in Delphi eingebunden und aus diesen Daten einen Bericht in FastReport VCL 6 erstellt!

Download-Link: DemoCSV.zip

Fast Reports
  • 800-985-8986 (Englisch, die USA)
  • +4930568373928 (Deutsch)
  • +55 19 98147-8148 (Portugiesisch)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314

© 1998-2024 Fast Reports Inc.
Trustpilot