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

2020-05-12

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

VCL VCL FastReport FastReport CSV CSV Data Source Data Source Delphi Delphi
22. April 2025

Umgang mit XML- und JSON-Formaten in FastScript

In diesem Artikel werden wir genauer untersuchen, wie man mit JSON und XML in FastReport arbeitet, welche Eigenschaften und Methoden darin enthalten sind, und Berichte aus dem Code mit Skripten erstellen.
22. April 2025

Umgang mit der TfrShellTreeView-Komponente in FastReport VCL

In diesem Artikel werden wir uns die TfrShellTreeView-Komponente ansehen. Es dient zur Anzeige von Dateisystemelementen und ist teilweise analog zu den Komponenten TDirectoryListBox, TDirectoryOutline und TShellTreeView.
8. April 2025

Einrichten der Verbindung mit Apache Ignite in FastReport .NET

In diesem Artikel werden wir untersuchen, wie Sie eine Verbindung zu Apache Ignite in FastReport .NET konfigurieren. Sie lernen die notwendigen Schritte, um das Plugin über Code und den Berichtsdesigner zu verbinden.
Fast Reports
  • 800-985-8986 (Englisch, USA)
  • +31 97 01025-8466 (Englisch, EU)
  • +49 30 56837-3928 (Deutsch, DE)
  • +55 19 98147-8148 (Portugiesisch, BR)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2025 Fast Reports Inc.