Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Daten aus DB in StringGrid und aus StringGrid in Exceldatei (https://www.delphipraxis.net/35582-daten-aus-db-stringgrid-und-aus-stringgrid-exceldatei.html)

recordable 9. Dez 2004 11:51


Daten aus DB in StringGrid und aus StringGrid in Exceldatei
 
Hallo!

Folgendes Problem. Ich mache eine Auswertung eines Datenbestandes. Da müssen die Mieten pro QM für den Jahrgang 2002-2004 von 1960 bis heute in einem StrinGrid angezeigt werden. Sieht ungefähr so aus.

1960 1961 1962 1963 usw.
------------------------
3,40 4,20 4,48 4,90
3,29 4,77 5,79 5,80

Hier müssen alle Bescheid durchlaufen werden. Sobald eine Miete gefunden ist muss diese ins obige Raster eingefügt werden.(Es kann auch mehrere in einem Fall geben, denn muss die letzte eingetragen werden) Dann gehts zum nächsten Fall.

Wie kann ich die Daten mit Hilfe von Delphi anzeigen lassen und wie kann ich sie dann vom StrinGrid in einer Exceldatei speichern?

MfG recordable

Schonmal Danke für die Antworten

Orbmu2k 9. Dez 2004 11:56

Re: Daten aus DB in StringGrid und aus StringGrid in Excelda
 
Warum kein DBGrid ? Und das Dataset direkt in Excel ?

recordable 9. Dez 2004 12:06

Re: Daten aus DB in StringGrid und aus StringGrid in Excelda
 
Die Daten sollen bloss angezeigt werden und dann muss ich mit der rechten Maustaste auf Exceldatei erstellen klicken oder sowas in der Art. Wenns mit ner DBGrid funktioniert? Ich bin blutiger Anfänger! :oops: Datenbank is Oracle. Und ich muss den Zeitraum frei wählen können z.B. 1964-1978 oder 1972- 1999.

recordable 9. Dez 2004 12:12

Re: Daten aus DB in StringGrid und aus StringGrid in Excelda
 
Liste der Anhänge anzeigen (Anzahl: 1)
So solls ungefähr aussehen!

Orbmu2k 9. Dez 2004 12:14

Re: Daten aus DB in StringGrid und aus StringGrid in Excelda
 
na das machst du mit ner TQuery und nem anständigen SQL Code ... an die knüpfste ne DataSource und nen DBGrid

das mit dem Excel ist ganz easy ... du brauchst nur das Dataset durchzugehen und Tab Delimiter für jede Spalte und nen Umbruch für jede Zeile machen ... das ganze dann als *.xls datei speichern ...

Orbmu2k 9. Dez 2004 12:22

Re: Daten aus DB in StringGrid und aus StringGrid in Excelda
 
Hier die Procedure um das Excel File zu erstellen ...


Delphi-Quellcode:
procedure TfrmXTMT.QueryToExcelFIle(Query: TQuery; TargetFilename: string; Header:boolean);
var
 XFile:TStrings;
 i:Integer;
 str:string;
begin
 XFile := TStringList.Create;
 with Query do
 begin
   str := '';

   if Header then
   begin
     for i := 0 to Fields.Count-1 do
       str := str + FieldDefs[i].Name + #9;
     XFile.Add(str);
   end;

   FindFirst;
   while Found do
   begin
     str := '';
     for i := 0 to Fields.Count-1 do
       str := str + Fields[i].AsString + #9;
     XFile.Add(str);
     FindNext;
   end;
 end;
 XFile.SaveToFile(TargetFilename);
 XFile.Free;
end;

recordable 9. Dez 2004 12:39

Re: Daten aus DB in StringGrid und aus StringGrid in Excelda
 
Delphi-Quellcode:
Query1.SQL.Clear;
    Query1.SQL.Add('select max(TATSAECHLENTGELT_QM) from feh_bearbeitung where TATSAECHLENTGELT_QM is
                   not null and TATSAECHLENTGELT_QM > 0');
    Query1.SQL.Add('and leistpflichtvon >= ''01.01.2002'' and leistpflichtvon <= ''01.01.2004''');
    Query1.SQL.Add('and id_wohnung in ( select id_wohnung from woh_bestand where id_wohnung =  
                    feh_bearbeitung.id_wohnung and datum_bewilligungsbescheid >= ''01.01.1960'' and    
                    datum_bewilligungsbescheid <=''31.12.1960'')');
    Query1.SQL.Add('group by tatsaechlentgelt_qm');
    Query1.Active := true;

    while not Query1.Eof do
    begin
      if CheckBox1.Checked then
      begin
      stringgrid1.Cols[1].Add(Query1.fieldbyname('max(TATSAECHLENTGELT_QM)').AsString);
      StringGrid1.RowCount := StringGrid1.RowCount+1;
      end;
    Query1.Next
    end;
So hat ich mir das eigentlich gedacht.

[edit=MrSpock]Delphi Code Tags eingefügt. Mfg, MrSpock[/edit]

Orbmu2k 9. Dez 2004 12:53

Re: Daten aus DB in StringGrid und aus StringGrid in Excelda
 
mach das mal in DELPHI tags ....

anstatt dem

Delphi-Quellcode:
Query1.Active := True
mach

Delphi-Quellcode:
Query1.Open;

und das mit dem Stringgrid kannst du komplett weglassen wenn du nen DBGrid an die DataSource hängst und die Datasource mit deiner Query verknüpst ...

Delphi-Quellcode:
DataSource1.DataSet := Query1;
DBGrid1.DataSource := DataSource1;

recordable 9. Dez 2004 13:19

Re: Daten aus DB in StringGrid und aus StringGrid in Excelda
 
Liste der Anhänge anzeigen (Anzahl: 1)
Aber wie bekomm ich jetzt für jedes jahr ne spalte? Sorry wenn ich nerve :oops: Jetzt siehts so aus!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:03 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