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.