Autor Beitrag
euro_mode
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 25.09.12 14:47 
hallo zusammen,

bin ein totaler neuanfänger was das programmieren angeht.

mein problem besteht darin;

es soll eine abfrage von der datenbank erstellt werden, die dann in eine excel datei geschrieben wird.

Am ende kommt diese fehlermeldung
ausblenden Quelltext
1:
2:
3:
Compiling
Compiler: [Error] (99:1): Identifier expected
Compiling failed


Hab hier auch mal den text, für jede kleine hilfe bin ich im voraus schon sehr dankbar.

ausblenden volle Höhe Delphi-Quelltext
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';
  
  // Geschrieben wird ab Zeile 16 (in der ersten stehen die Überschriften)
  nAbZeile := 16;
  
  // Wir starten Excel im Hintergrund
  Dateiname := Verzeichnis + Dateiname;
  
  // Existiert die Datei?
  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];   
                                                                                        //(postyp in (1,2)) AND
    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;
      
      
      //writeln(cARTNR);
      
      
      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;
    
    //application.processmessages;
    finally
      begin
        oDialog.Free;
      end;
    end;
     
end.


Moderiert von user profile iconMartok: Code- durch Delphi-Tag ersetzt
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Mi 26.09.12 01:13 
Ich habe den Sourcecode zwar nur überflogen, dennoch sind mir drei Punkte aufgefallen:

1. Es gibt zweimal Try (Zeilen 12 und 62), aber nur einmal ein Except bzw. Finally (Zeile 93).
2. Der Verzeichnisname in Zeile 39 ist falsch. Vor den Laufwerksbuchstaben gehört hier kein Backslash hin.
3. In der vorletzten Zeile fehlt ein "end;".
euro_mode Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 26.09.12 08:21 
Danke Hr. kayser
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 26.09.12 09:24 
Moin und :welcome: in der EE!

user profile iconeuro_mode hat folgendes geschrieben Zum zitierten Posting springen:
Danke Hr. kayser
btw: Wir DUzen uns hier in der EE. :beer:

Richtlinien - Vorwort hat folgendes geschrieben:
Innerhalb der Entwickler-Ecke-Community (kurz "EE") ist es üblich sich zu duzen, du wirst hier also mit "DU" angesprochen.

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.