1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99:
| program abfrage; const CRLF = #13+#10; var XlsApp, XlsWorkBook, XlsWorksheet: variant; cNETTOEINZEL,nAbZeile,i:integer; cGUID,cAUFNR,cBestellt,Verzeichnis,Dateiname,cARTNR:string; nBestellt,nNettoEinzel:currency; oDialog:TUDFDialog; begin
oDialog := TUDFDialog.Create; try oDialog.AddField('AUFNR.','AUFNR.',ftString,True,True,'',0); if oDialog.Execute then begin cAUFNR := oDialog.GetFieldValue('AUFNR.'); oQuery.SQL.Text := 'SELECT kopfguid FROM kopf WHERE UPPER(AUFNR) LIKE UPPER ('+quotedstring(cAUFNR)+')'; oQuery.Open; if oQuery.RecordCount = 1 then begin cGUID := oQuery.Fields.Fields[0].AsString; end else if oQuery.RecordCount > 1 then begin ShowMeldung('Mehr als 1 Ergebnis zu dieser Rechnungsnummer'); exit; end else begin ShowMeldung('Rechnungsnummer: '+cAUFNR+' nicht gefunden!'); exit; end end;
Verzeichnis := '\D:\test\'; Dateiname := '123.xls'; nAbZeile := 16; Dateiname := Verzeichnis + Dateiname; if not FileExists(Dateiname) then begin Dateiname := OpenDialog('Excel *.xls|*.xls','Exportdatei wählen');
if not FileExists(Dateiname) then begin ShowMeldung('Die Datei : '+Dateiname+' ist nicht vorhanden!'); exit; end; end; XlsApp := CreateOleObject('Excel.Application'); try XlsApp.Visible := False; XlsWorkbook := XlsApp.Workbooks.Open(Dateiname, True, False); XlsWorkbook := XlsApp.Workbooks[1]; XlsWorksheet := Xlsworkbook.Worksheets[1]; oQuery.SQL.Text := 'SELECT ARTNR, Bestellt, NETTOEINZEL,zeilenid FROM position WHERE kopfguid = '+quotedstring(cGUID)+' ORDER BY zeilenid'; oQuery.Open; while not oQuery.eof do begin cARTNR := oQuery.Fields.Fields[0].Asstring; nBestellt := oQuery.Fields.Fields[1].AsCurrency; nNETTOEINZEL := oQuery.Fields.Fields[2].AsCurrency; i:= nAbZeile; XlsWorksheet.Cells[i,'A'].Value := cARTNR; XlsWorksheet.Cells[i,'B'].Value := nBestellt; XlsWorksheet.Cells[i,'C'].Value := nNETTOEINZEL; oQuery.Next; i:= i +1; end; finally begin oDialog.Free; end; end; end. |