Domino 9 und frühere Versionen > ND6: Entwicklung
@while Frage
Peacemaker:
Hallo,
folgendes Problem:
Ich möchte von einem Form aus dynamisch mehrere andere Forms erstellen. Diese sollen Werte von Feldern aus dem Ursprungsform übernehmen. Das anze klappt soweit auch für einzelne Dokumente.
Nun möchte ich das ganze aber für alle zu erstellenden Forms (Anzahl abhängig von n) in einen Abwasch durchlaufen lassen. Also habe ich den code der für ein einzelnes dokument funktioniert genommen udn eine while schleife drumgepackt.
Die Schleife läuft auch durch und erstellt mir insgesamt n Dokumente, soweit so gut. Nur klappt das aktualisieren der Felder im Ausgangsformular irgendwie nicht so recht. Er übergibt in allen durchgängen die gleichen Daten, obwohl die Felder welche übergeben werden bei jedem Durchlauf dynamisch (abhängig von n) geändert werden sollten...
Gibt es da irgendetwas zu beachten? Muss irgendwo ein refresh gesetzt werden???? Irgendwelche ideen?
n:=-numberss;
subsysexp:=@Explode(subsys);
ecnumbersxp:=@Explode(ecnumbers);
alldriversxp:=@Explode(alldrivers);
allplatformsxp:=@Explode(allplatforms);
alllongnamesxp:=@Explode(alllongnames);
allrecxp:=@Explode(allrec);
allactxp:=@Explode(allact);
allacttimexp:=@Explode(allacttime);
allaccxp:=@Explode(allacc);
allmaxxp:=@Explode(allmax);
@While(n!=0;@Prompt([Ok];"laufvariable n ="+ @Text(n);@Text(n));FIELD subsys_temp:=@Subset(@Subset(subsysexp;n);1);FIELD ecnumbers_temp:=@Subset(@Subset(ecnumbersxp;n);1);FIELD alldrivers_temp:=@Subset(@Subset(alldriversxp;n);1);
FIELD allplatforms_temp:=@Subset(@Subset(allplatformsxp;n);1);FIELD alllongnames_temp:=@Subset(@Subset(alllongnamesxp;n);1);FIELD allrec_temp:=@Subset(@Subset(allrecxp;n);1);
FIELD allact_temp:=@Subset(@Subset(allactxp;n);1);FIELD allacttime_temp:=@Subset(@Subset(allacttimexp;n);1);
FIELD allacc_temp:=@Subset(@Subset(allaccxp;n);1);FIELD allmax_temp:=@Subset(@Subset(allmaxxp;n);1);
@Command([FileSave]);@Command([Compose];"add_subsystem");@Command([FileSave]);@Command([FileCloseWindow]);n:=n+1)
Hier das @while nochmal etwas leserlicher:
@While(n!=0;@Prompt([Ok];"laufvariable n ="+ @Text(n);@Text(n));
FIELD subsys_temp:=@Subset(@Subset(subsysexp;n);1);
FIELD ecnumbers_temp:=@Subset(@Subset(ecnumbersxp;n);1);
FIELD alldrivers_temp:=@Subset(@Subset(alldriversxp;n);1);
FIELD allplatforms_temp:=@Subset(@Subset(allplatformsxp;n);1);
FIELD alllongnames_temp:=@Subset(@Subset(alllongnamesxp;n);1);
FIELD allrec_temp:=@Subset(@Subset(allrecxp;n);1);
FIELD allact_temp:=@Subset(@Subset(allactxp;n);1);
FIELD allacttime_temp:=@Subset(@Subset(allacttimexp;n);1);
FIELD allacc_temp:=@Subset(@Subset(allaccxp;n);1);
FIELD allmax_temp:=@Subset(@Subset(allmaxxp;n);1);
@Command([FileSave]); //zum zwischenspeichern der neuen feldnamen
@Command([Compose];"add_subsystem");
@Command([FileSave]);
@Command([FileCloseWindow]);n:=n+1)
EDIT: Irgendwie scheint er das neue dokument nicht gescheit zu saven+schließen, irgendwie funktioniert die reihenfolge nicht richtig. Am Ende des Durchlaufes sind nur die letzten Datensätze im Form, alle subforms sidn erstellt, aber leer- was kann man da machen???
Danke
umi:
versuch das ganze in Script.......
Thomas Schulte:
Jo, hier kommst du vernünftigt nur mit Script weiter
Thomas
Peacemaker:
bin in Notes Script ganz schlecht.
Was wäre denn ein Code der im bestehenden Dokument ein neues, anderes Form öffnet, Felder mit werten aus dem ausgangsformular beschreibt und das ganze in einer schleife n mal?
Peacemaker:
gerade ist mir noch etwas wichtiges aufgefallen - das beschreiben der felder scheint zu klappen - aber :
Wenn ich den Prozess mit Strg+pause unterbreche sind alle bis dahin erstellten formulare noch offen, d.h. sie erben voneinander und nichtmehr vom ursprungsform. Erst nach dme letzten werdne alle auf einmal geschlossen.
Wieso schließt er nicht jedes erstelltes Dokument, direkt nachdem es created wird, so wie es in der schleife definiert ist???
@Command([Compose];"add_subsystem");
@Command([FileSave]);
@Command([FileCloseWindow]);
Denke daran hängt es sich auf
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln