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

20. November 2024

Lokalisierung und Ändern von Sprachen in FastReport VCL

FastReport VCL unterstützt 40 Sprachen für die Schnittstellenlokalisierung und ermöglicht es Ihnen, die Sprache im laufenden Betrieb über Menüs oder Code ohne Neukompilierung zu ändern.
12. August 2024

Erstellen und Installieren des Postgres-Plugins in FastReport .NET

In diesem Artikel wird beschrieben, wie Sie mit dem FastReport .NET-Plugin für den Berichtsdesigner aus Visual Studio über den NuGet-Server eine Verbindung zur Datenbank herstellen.
11. Dezember 2023

Neuer S3 (Amazon) Transport in FastReport VCL

In diesem Artikel werden wir uns den neuen Transport in S3 (Amazon) für FastReport VCL ansehen, bei dem es sich um einen Objektspeicher für Dateien und Buckets handelt.
Fast Reports
  • 800-985-8986 (Englisch, die USA)
  • +4930568373928 (Deutsch)
  • +55 19 98147-8148 (Portugiesisch)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2024 Fast Reports Inc.