UDF Skripte
Adressen Export
Script Beispiel für Adressen Export in Excel.
program adressen_export;
const
// SheetType
xlChart = -4109;
xlWorksheet = -4167;
// WBATemplate
xlWBATWorksheet = -4167;
xlWBATChart = -4109;
// Page Setup
xlPortrait = 1;
xlLandscape = 2;
xlPaperA4 = 9;
// Format Cells
xlBottom = -4107;
xlLeft = -4131;
xlRight = -4152;
xlTop = -4160;
// Text Alignment
xlHAlignCenter = -4108;
xlVAlignCenter = -4108;
xlVAlignTop = -4160;
// Cell Borders
xlThick = 4;
xlThin = 2;
var
XlsApp, XlsWorkBook, XlsWorkSheet: Variant;
Dateiname,Verzeichnis: String;
nAbZeile,i:integer;
begin
// Geschrieben wird ab Zeile 2 (in der ersten stehen die Überschriften)
nAbZeile := 2;
// Wir starten Excel im Hintergrund
XlsApp := CreateOleObject('Excel.Application');
try
XlsApp.Workbooks.Add;
XlsApp.Visible := False;
XlsWorkbook := XlsApp.Workbooks[1];
XlsWorksheet := Xlsworkbook.Worksheets[1];
oQuery.SQL.Text := 'SELECT IF(a.RGanschriftID>0,ad.anschrift,a.rga) AS Anschrift,';
oQuery.SQL.Add(' a.*');
oQuery.SQL.Add(' FROM adressen a LEFT OUTER JOIN adrdata1 ad ON ');
oQuery.SQL.Add(' (a.RGanschriftID>0)');
oQuery.SQL.Add(' AND (a.RGanschriftID=ad.lieferanschriftid)');
oQuery.SQL.Add(' AND (a.adrint=ad.adrint)');
oQuery.SQL.Add(' WHERE a.aktiv ORDER BY a.kndnr');
oQuery.Open;
XlsWorksheet.Cells[1,'A'].Value := 'KndNr';
XlsWorksheet.Cells[1,'B'].Value := 'Match';
XlsWorksheet.Cells[1,'C'].Value := 'EMail';
XlsWorksheet.Cells[1,'D'].Value := 'Anschrift';
XlsApp.Range('A1:D1').Select;
XlsApp.Selection.Font.Bold := true;
XlsApp.Selection.Interior.ColorIndex := 1;
XlsApp.Selection.Interior.Pattern := 1; //xlSolid
XlsApp.Selection.Font.ColorIndex := 2;
XlsApp.Columns('B').ColumnWidth := 50;
XlsApp.Columns('C').ColumnWidth := 30;
XlsApp.Columns('D').ColumnWidth := 60;
XlsApp.Columns('A').VerticalAlignment := xlVAlignTop;
XlsApp.Columns('B').VerticalAlignment := xlVAlignTop;
XlsApp.Columns('C').VerticalAlignment := xlVAlignTop;
XlsApp.Columns('D').VerticalAlignment := xlVAlignTop;
XlsApp.Columns('A').select;
XlsApp.Selection.NumberFormat := '@';
i := nAbZeile;
oQuery.Open;
while not oQuery.eof do
begin
XlsWorksheet.Cells[i,'A'].Value := oQuery.FieldByname('kndnr').AsString;
XlsWorksheet.Cells[i,'B'].Value := oQuery.FieldByname('Match').AsString;
XlsWorksheet.Cells[i,'C'].Value := oQuery.FieldByname('Email').AsString;
XlsWorksheet.Cells[i,'D'].Value := trim(oQuery.FieldByname('anschrift').AsString);
writeln(oQuery.FieldByname('kndnr').AsString);
oQuery.Next;
i := i+1;
application.processmessages;
end;
writeln('Ausgabe beendet.'); // im Editor
ShowMeldung('Ausgabe beendet'); // Dialog
XlsApp.Visible := True;
except
ShowMeldung('Fehler');
XlsApp.Quit;
// Globale Variable unassigned
XlsApp := Unassigned;
XlsWorkbook := Unassigned;
// excel.exe im Taskmanager als Prozess immer noch vorhanden
XlsWorksheet := Unassigned;
// Jetzt ist excel.exe im Taskmanager als Prozess verschwunden
RaiseLastException;
end;
end.