fortlaufende Dateinamen?
-
Moin Moin
und zwar schreibe ich grad ein Programm Aufträge aus ner DB ausliest und diese dann in ein WordDokument reinklatscht abspeichert und per ftp weiterjagt.
Soweit so gut jetzt ist mir aber aufgefallen sobald mehr als ein Auftrag in die DB reinkommt überschreibt er einfach immmer nur die WordDokumente und das soll ja nicht sinn und zweck sein...
Also die Frage kann ich hier noch ein zähler reinmachen un wenn ja wo???
habs vor "Auftrag.doc" schon versucht oben unten un werd langsam irre
if(!vOLEWord.IsEmpty()) CreateDocument(vOLEWord,ExtractFilePath(ParamStr(0))+"vorlage.doc", ExtractFilePath(ParamStr(0))+ "Auftrag.doc", false);dank schon mal im voraus!
mfg
hck
-
Hallo
aus der BCB-Hilfe
ParamStr(0) gibt den Pfad und den Dateinamen des ausgeführten Programms zurück (z.B. C:\TEST\MYPROG.EXE).
bis bald
akari
-
Hallo,
Bau dir doch den String für den Dateinamen vorher zusammen.
AnsiString auftragsname(ExtractFilePath(ParamStr(0))); auftragsname += "Auftrag"; int i = 0; // das ist die Zahl für den Zähler auftragsname += IntToStr(i); auftragsname += ".doc";Den String verwendest du dann in deinem CreateDocument. Du mußt nur noch die Zahl bei Bedarf erhöhen.
-
Hallo
und ich dachte heckticker erwartet im Parameter 0 einen Zähler, den er als Kommandozeilenparameter übergeben bekommt.
bis bald
akari
-
Wir warten am besten auf die Meinung des OP, um rauszubekommen, was er wirklich wollte.
-
danke Braunstein war das richtige
tschuldigt bin heut nicht ganz so auf dem Damm schlechtes WE gehabt 
obwohl ich da wieder zu ner anderen Frage komme den zähler müsst ich ja global definieren weil das dokumente innerhalb eines Timers erstellt wird, wo kann man denn hier die variable global definieren

-
global muss nich, mach es doch als member der form (im header der form)
-
oder static innerhalb der Timerfunktion.
-
habs jetzt im header definiert funktionukelt auch stellenweise..
wenn gleichzeitig 5 Aufträge reinkommen gibt er mir trotzdem nur einen Auftrag raus der schimpft sich dann auftrag1.docfor (int i=0;i<t_adverkauf->RecordCount;i++) { if(t_adverkauf->FieldByName("Druck")->AsInteger != 1) { ca = q_adverk->FieldByName("CallAgent")->AsString; zt = q_adverk->FieldByName("Zeitschrift")->AsString; //OLE Server init Variant vOLEWord; bool blWordStarted = InitOleServer(vOLEWord); //Dokument erzeugen und speichern if(!vOLEWord.IsEmpty()) CreateDocument(vOLEWord,ExtractFilePath(ParamStr(0))+"vorlage.doc", auftragsname, false); //zaehler einen nachoben anz++; //Word beenden wenn von mir gestartet wurde if(blWordStarted) TerminateOleServer(vOLEWord); vl_verkauf->InsertRow(ca,zt,true); //Eintrag ValueListEditor t_adverkauf->Edit(); t_adverkauf->FieldByName("Druck")->AsInteger = 1; t_adverkauf->Post(); } t_adverkauf->Next(); } q_adverk->Close(); t_adverkauf->Close();
-
ok Fehler meinerseits hab verpeilt
AnsiString auftragsname(ExtractFilePath(ParamStr(0))); auftragsname += "Auftrag"; auftragsname += IntToStr(anz); auftragsname += ".doc";mit in die Schleife reinzunehmen funktioniert einwandfrei! Danke für die Hilfe!!