AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Export eines Suchergebnisses nach Excel zu langsam
Thema durchsuchen
Ansicht
Themen-Optionen

Export eines Suchergebnisses nach Excel zu langsam

Ein Thema von GoTo0815 · begonnen am 16. Nov 2006 · letzter Beitrag vom 17. Nov 2006
 
GoTo0815

Registriert seit: 18. Mai 2004
148 Beiträge
 
Delphi XE2 Professional
 
#1

Export eines Suchergebnisses nach Excel zu langsam

  Alt 16. Nov 2006, 13:05
Datenbank: Paradox • Version: 7 • Zugriff über: Query
Hallo @ all,


ich habe auf meinem Formular eine Query, ein DBGrid, ein StringGrid & ein Button.

Nun lasse ich mir über das DBGrid das Suchergebnis der Query anzeigen.

Beispiel SQL: Select * from retouren WHERE ....

Die Datenbank liegt im Netzwerk auf einem Server.

Das Suchergebnis der Quersy erscheint sehr schnell, daher gehe ich davon aus, dass bis dahin alles in Ordnung ist.

Nun soll per Knopfdruck ein Export der Daten nach Excel stattfinden. Das funktioniert auch. Aber der Kopiervorgang ist sowas von langsam, dass ich nicht nur ne Kanne Kaffe kochen, sondern auch noch austrinken kann.
Kann man das DBGrid nicht mit einem Schlag in ein StrinGrid kopieren? Muss man da immer über die einzelnen Datensätze der Query gehen? Das DBGrid muss doch auch so ein Art Array bzw. StringList haben, oder?


Delphi-Quellcode:
procedure TForm1.BitBtn7Click(Sender: TObject);
var RowC, ColC,rowCount,k,i :integer;
    Str: string;
    StrList: TStringList;
begin
    rowCount := 1; StringGrid2.ColCount := 11;
    StringGrid2.RowCount := rowcount;
    //Übernehmen der Daten aus der DBGrid in ein StringGrid
    StringGrid2.Cells[0,0]:= 'Auftragsnr.';
    StringGrid2.Cells[1,0]:= 'Artikelnr.';
    StringGrid2.Cells[2,0]:= 'Artikel';
    StringGrid2.Cells[3,0]:= 'Seriennummer';
    StringGrid2.Cells[4,0]:= 'Kunde';
    StringGrid2.Cells[5,0]:= 'RMA-Nr.';
    StringGrid2.Cells[6,0]:= 'Fehler';
    StringGrid2.Cells[7,0]:= 'Getauscht';
    StringGrid2.Cells[8,0]:= 'Status';
    StringGrid2.Cells[9,0]:= 'Datum';
    StringGrid2.Cells[10,0]:= 'Lieferdatum';


    Query_Suchen.First;
    for i:= 1 to Query_Suchen.RecordCount do
    begin
      for k := 0 to DBGrid11.Columns.Count - 1 do
      begin
        StringGrid2.Cells[k, rowCount] := DBGrid11.Fields[k].AsString;
      end;
      Query_Suchen.Next;
      rowCount := rowCount + 1;
      StringGrid2.RowCount := rowCount;
    end;

  //zunächst wird hier eine csv-Datei erstellt:

  StrList := TStringList.Create();
  for RowC := 0 to StringGrid2.RowCount - 1 do
  begin
    Str := '';
    for ColC := 0 to StringGrid2.ColCount - 1 do
      Str := Str + StringGrid2.Cells[ColC, RowC] + ';';
    Delete(Str, length(Str), 1); // löscht den überfluessigen String
    StrList.Add(Str);
  end;

  StrList.SaveToFile('tmpExcel.csv');

  //dann wird die Datei mit Excel geöffnet:
  ShellExecute(Application.Handle, 'OPEN', pchar(ExtractFilePath
     (Application.ExeName) + 'tmpExcel.csv'), NIL, NIL, SW_NORMAL);

  // und schließlich die csv-Datei wieder gelöscht
  DeleteFile(ExtractFilePath(Application.ExeName) + 'tmpExcel.csv');



end;
Falls ich mal ein "DANKE" vergesse, hier schon mal eins im Voraus: Danke für Eure Zeit!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz