Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Tchart und Access DB (https://www.delphipraxis.net/76013-tchart-und-access-db.html)

poterp 28. Aug 2006 18:39


Tchart und Access DB
 
Hallo Freunde,

Ich habe ein Problem und zwar ich möchte die Daten, was ich auf ein Access DB habe Graphisch darstellen, und Zwar Links vertikal soll bestimmt Name aus der DB übernohmen werden und horizontal unter Zahlen. ich habe die verbindung mit Jet ole hergestellt und weiter weisse ich nicht kann mich jemanden helfen???? ich benutze Delphi 2005 Architekt und Teechart 4.04

Grüß
Poter

meine Code


Delphi-Quellcode:
procedure TForm1.Button13Click(Sender: TObject);
const FieldName0 = 'Ereignis_name';
       FieldName1 = 'Positiv';
       FieldName2 = 'Neutral';
       FieldName3 = 'Negativ';
       FieldName4 = 'ohne Wertung';
       Max_data_count = 10;
var i,j, v1, v2, v3, v4 : integer;
   name : AnsiString;
 p : TChartSeriesList;
begin
  Chart1.Title.Text.Clear;
  Chart1.Title.Text.Add('Chart1 Title'+ ComboBox3.Text);
  Chart1.Title.Text.Add(DBLookupComboBox6.Text);
  Chart1.Title.Text.Add( 'Bezugsubjekt:' + ComboBox3.Text);
  Chart1.Title.Text.Add('Geschäftsfeld:' + ComboBox4.Text);
  Chart1.Title.Text.Add( 'Bezugsgebiet:' + ComboBox5.Text);
  Chart1.Title.Text.Add(       'Zeitbezug:' + Tabsheet1.Caption);
  Chart1.Title.Text.Add(          'Urheber:' + ComboBox6.Text);
 // Chart1.Series[0].Add(70,'');
 // Chart1.Series[1].Add(90,'');
 // Chart1.Series[2].Add(80,'');
 // Chart1.Series[3].Add(90,'');

//ShowMessage('Series count = ' + IntToStr(Chart1.SeriesCount));

 tbl_data.First;
 i:=0;
 // clear series
  Chart1.Series[0].Clear;
  Chart1.Series[1].Clear;
  Chart1.Series[2].Clear;
  Chart1.Series[3].Clear;
   labels.Clear;
while (not tbl_data.Eof) do
begin
    name:= tbl_data.FieldByName(FieldName0).AsString;
    v1 := tbl_data.FieldByName(FieldName1).AsInteger;
    v2 := tbl_data.FieldByName(FieldName2).AsInteger;
    v3 := tbl_data.FieldByName(FieldName3).AsInteger;
    v4 := tbl_data.FieldByName(FieldName4).AsInteger;
    tbl_data.Next;

//    chart1.Series[0].
   // Chart1.
    labels.Add(name);
    Chart1.Series[0].Add(v1, '');
    Chart1.Series[1].Add(v2, '');
    Chart1.Series[2].Add(v3, '');
    Chart1.Series[3].Add(v4, '');
    inc(i);
    if (i > max_data_count) then break;
 end;


end;

procedure TForm1.Button14Click(Sender: TObject);

const FieldName0 = 'Ereignis_name';
       FieldName1 = 'Positiv';
       FieldName2 = 'Neutral';
       FieldName3 = 'Negativ';
       FieldName4 = 'ohne Wertung';
       Max_data_count = 10;
var i,j, v1, v2, v3, v4 : integer;
 p : TChartSeriesList;
begin
ShowMessage('Series count = ' + IntToStr(Chart1.SeriesCount));

 tbl_data.First;
 i:=0;
 // clear series
  Chart1.Series[0].Clear;
  Chart1.Series[1].Clear;
  Chart1.Series[2].Clear;
  Chart1.Series[3].Clear;

 while (not tbl_data.Eof) do
begin
    v1 := tbl_data.FieldByName(FieldName1).AsInteger;
    v2 := tbl_data.FieldByName(FieldName2).AsInteger;
    v3 := tbl_data.FieldByName(FieldName3).AsInteger;
    v4 := tbl_data.FieldByName(FieldName4).AsInteger;
    tbl_data.Next;
    Chart1.Series[1].Add(v1, '');
    Chart1.Series[2].Add(v2, '');
    Chart1.Series[3].Add(v3, '');
    Chart1.Series[4].Add(v4, '');
    inc(i);
    if (i > max_data_count) then break;
 end;


end;


procedure TForm1.FormCreate(Sender: TObject);
begin
 labels := TStringList.Create;
end;

procedure TForm1.Chart1GetAxisLabel(Sender: TChartAxis; Series: TChartSeries;
  ValueIndex: Integer; var LabelText: string);
begin
    if (labels.Count > 0) and (ValueIndex >0)
    then
    begin
    if (valueIndex <= labels.count) then LabelText := labels[ValueIndex];

    end;
end;
[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]

DP-Maintenance 29. Aug 2006 06:13

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Die Delphi-IDE" nach "VCL / WinForms / Controls" verschoben.
Die Frage könnte auch in die DB-Sparte. Aber hauptsächlich geht es ja um das TChart

Thanatos81 29. Aug 2006 07:56

Re: Tchart und Access DB
 
Gibt es bei der D2005 auch das TDBChart? Das ist nämlich für solche Fälle sehr schön. Du verbindest einfach eine TDataSource-Komponente mit deiner Datenmenge. Dann kannst du im TDBChart zu den einzelnen Series die TDataSource auswählen und die Felder für die einzelnen Achsen bestimmen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz