Welcome Guest, you are in: Anmelden

CP Wiki

RSS RSS

Navigation



  1. Administration

Suche im wiki
»
CPALEB wird noch weiter komplettiert! 02.02.2009

Zweck

Mit Hilfe der Komponente TAdapterExcel können Daten aus der Datenbank nach Excel gesendet werden.


Dazu wird ein Table Objekt benötigt und jeder Datensatz innerhalb der Table muss manuell durchgelaufen werden, die Daten werden Zeile für Zeile ins Excel exportiert. Nach der Freigabe des TAdapterExcel Objekts im Code bleibt Excel geöffnet, erst beim Schliessen fragt Excel nach, ob man die Datei speichern möchte oder nicht.



Beispiel

Folgendes Beispiel soll die Funktionsweise der TAdapterExcel verdeutlichen.

procedure buttonExcelExportEinheit_OnClick(Sender: Integer); var aExcel: TAdapterExcel; i: integer; aRow: Integer; aLastTitel: String; aSumme: Double; begin; TableExportEinheit.setstringparam('OB_ID', self.getparam('OB_ID')); TableExportEinheit.readData; if TableExportEinheit.recordcount > 0 then TableExportEinheit.First; aExcel := TAdapterExcel.Create; try aRow := 1;

//Flag setzen damit Excel nicht geschlossen wird beim Freigeben der TAdapterExcel Klasse aExcel.CloseOnFree := false; aExcel.Cell'B1'.HorizontalAlign := thaCenter; aExcel.Cell'B1'.Width := 15.5; aExcel.Cell'B1'.WordWrap := true; aExcel.Cell'A1'.Value := 'EH_Nummer'; aExcel.Cell'A1'.Font.Style := fsBold; aExcel.Cell'B1'.Value := 'Top'; aExcel.Cell'B1'.Font.Style := fsBold; aExcel.Cell'C1'.Value := 'Geschoss'; aExcel.Cell'C1'.Font.Style := fsBold;

while not TableExportEinheit.EOF do begin aRow := aRow + 1; aExcel.Cell'A' + inttostr(aRow).Value := TableExportEinheit.FieldByName('EH_NUMMER').AsString; aExcel.Cell'A' + inttostr(aRow).HorizontalAlign := thaRight; aExcel.Cell'B' + inttostr(aRow).Value := TableExportEinheit.FieldByName('EH_TOP').AsString; aExcel.Cell'B' + inttostr(aRow).HorizontalAlign := thaRight; aExcel.Cell'C' + inttostr(aRow).Value := TableExportEinheit.FieldByName('EH_STOCKWERK').AsString; aExcel.Cell'C' + inttostr(aRow).HorizontalAlign := thaRight; TableExportEinheit.Next; end; aExcel.ShowExcel; finally aExcel.Free; end; end;



Excel wird zeilenweise befüllt, dazu geht man mit einem Zähler durch die Datenmenge und spricht die Excel Zellen über den Zähler an. Zum Beispiel erster Datensatz kommt in Zellen A2,B2,C2 - der 5. Datensatz dann in Zellen A6,B6,C6 usw.

Tipps:
  • Die Zellen im Excel können auch formatiert werden (Schrift, Ausrichtung, WordWrap, Breite etc..) siehe Beispiel oben.
  • Das Excel Objekt kann im Code freigegeben werden ohne dass Excel selbst sich schliesst, wenn man folgenden Schalter setzt:

    aExcel.CloseOnFree := false;

ScrewTurn Wiki version 3.0.1.400. Some of the icons created by FamFamFam.