Var
fSummeExcel : Extended;
fSummeIV : Extended;
fDifferenz : Extended;
fMonatsUmsatz : Extended;
sEMessage :
String;
iErrorCode : Word;
sExcelFile :
String;
sTabelle :
String;
iRecordCount : Integer;
i : Integer;
lcid : Integer;
ea : TExcelApplication;
ewb : TExcelWorkbook;
ews : TExcelWorkSheet;
begin
// Dat dauert wat.
Screen.Cursor := crHourGlass;
// Diese ID wird zur Kommunikation mit Excel benötigt.
lcid := LOCALE_USER_DEFAULT;
Try
// Summenvariabeln initialisieren.
fSummeExcel := 0;
fSummeIV := 0;
// SQL-Statement für Summe der Umsätze holen
fmDataBase.qrySelect.SQL.Text := fmDataBase.fnGetSQL(100);
// und Jahreszahl zuweisen.
fmDataBase.qrySelect.ParamByName('
JAHR').AsInteger := StrToInt(Trim(meGeschaeftsJahr.Text));
// Variabeln für die Verbindung zu Excel initialisieren
ea := TExcelApplication.Create(Self);
ewb := TExcelWorkbook.Create(Self);
ews := TExcelWorksheet.Create(Self);
Try
// Verbindungsart festlegen - grundsätzlich eine neue Instanz von Excel starten.
// Dies ist wichtig, da sonst Probleme mit einem bereits offenen Excel
// entstehen können.
ea.ConnectKind := ckNewInstance;
ewb.ConnectKind := ckNewInstance;
ews.ConnectKind := ckNewInstance;
// Excel soll unsichtbar arbeiten, sichtbar wird es seeeeeeehr langsam.
ea.Visible[lcid] := False;
.. diverses Allerlei
Finally
// Verbindung zu Excel beenden.
Try
ewb.Disconnect;
ews.Disconnect;
ea.Application.Quit;
ea.Disconnect;
ea.Quit;
ews.Free;
ewb.Free;
ea.Free;
Except
On e :
Exception Do Begin
MessageDlg('
Fehler beim Trennen der Verbindung zu Excel. ' + #13 + e.
Message,mtError,[mbok],0);
End;
End;
End;
Except
On e :
Exception Do Begin
MessageDlg(e.
Message,mtError,[mbok],0);
End;
End;
Screen.Cursor := crDefault;
end;