Domino 9 und frühere Versionen > ND7: Entwicklung
Frage zu einer Schleife
Bruce Willis:
Hallo,
könnte man mit einer Formel-Schleife das Folgende tun?
Es gibt eine Maske mit 10 sichtbaren Text-Feldern für Kommentare der Benutzer.
Komment_1 ... Komment_10
Es gibt noch 10 versteckte Felder, wo der vorherige Inhalt der sichtbaren Felder gespeichert ist:
Komment_1_1 ... Komment_1_10
Beim Speichern des Dokuments werden alle Änderungen in die History geschrieben.
Zehnmal eigentlich dasselbe:
newEntry := Komment_1 ;
@If( Komment_1 != Komment_1_1 ; @Do (
@SetField("History"; @NewLine + newEntry + History ) ;
@SetField("Komment_1_1" ; Komment_1 )
); @Success );
....
newEntry := Komment_10 ;
@If( Komment_10 != Komment_1_10 ; @Do (
@SetField("History"; @NewLine + newEntry + History ) ;
@SetField("Komment_1_10" ; Komment_10 )
); @Success );
Für eine Idee wäre ich sehr dankbar.
Gruß
Leo
koehlerbv:
Willst Du den Stunt wirklich in Formelsprache machen? Nicht wirklich, oder? Nimm LotusScript.
Zehn Kommentarfelder (das ist starr!) und dazu zehn zur Historie und dann noch ein History Field itself - das klingt auch nicht nach der architektonischen Weisheit letzter Schluss. Aber für wirkliches Urteil weiss ich natürlich zu wenig über Deine Anwendung.
Schleifen kannst Du per Formeln bauen, auch ein @SetField kann damit bedient werden. Für Deine "Komment"-Items müsstest Du aber von hinten durch die Brust wieder das aktuelle Dokument auslesen - nö, das ist weder schön noch rationell.
Wie gesagt: Nimm LotusScript. Dann wird es ein übersichtlicher Wenigzeiler.
Bernhard
Werner Götz:
Ob nun das Ganze sinnvoll ist, kann ich nicht beurteilen, ich denke aber, die Formeln kann man mit einer Schleife ersetzen.
-Werner
@For( i := 1; i <= 10; i := i + 1;
iText := @Text(i);
newEntry := @GetField("Komment_" + iText);
@If( newEntry != @GetField("Komment_1_" + iText );
@Do (
@SetField("History"; @NewLine + newEntry + History ) ;
@SetField("Komment_1_" + iText ; newEntry )
);
""
)
);
Bruce Willis:
Hallo Bernhard,
Danke für Dein schnelles Feedback.
--- Zitat von: koehlerbv am 04.02.09 - 00:30:34 ---Zehn Kommentarfelder (das ist starr!) und dazu zehn zur Historie und dann noch ein History Field itself - das klingt auch nicht nach der architektonischen Weisheit letzter Schluss.
--- Ende Zitat ---
Wie würdest Du etwas ähnliches (egal was) FLEXIBEL realisieren? :)
--- Zitat von: koehlerbv am 04.02.09 - 00:30:34 ---weiss ich natürlich zu wenig über Deine Anwendung.
--- Ende Zitat ---
Es geht um ein Formular (unter anderem eine Tabelle mit 10 Zeilen und mehreren Spalten). Eine der Spalten ist für Kommentare vorgesehen.
Die Formulare werden von mehreren Leuten bearbeitet.
Man möchte - unter anderem - wissen, wann, wer und was eingetragen, geändert oder gelöscht hat.
Gruß
Leo
Bruce Willis:
--- Zitat von: Werner Götz am 04.02.09 - 08:09:53 ---Ob nun das Ganze sinnvoll ist, kann ich nicht beurteilen, ich denke aber, die Formeln kann man mit einer Schleife ersetzen...
--- Ende Zitat ---
Hallo Werner,
VIELEN DANK :knuddel:
für Deine schnelle Antwort und tolle Lösung !!!
Gruß
Leo
--------
WannWer := @Text(@Now;"D0T1") + " - " + @Name( [CN] ; @UserName ) ;
@For( i := 1; i <= 10; i := i + 1;
iText := @Text(i);
newEntry := WannWer + ", zum " + iText + ".Kommentar: " + @GetField("Komment_" + iText);
newValue := @GetField("Komment_" + iText);
oldValue := @GetField("Komment_1_" + iText);
@If( newValue != oldValue ;
@Do (
@SetField("History"; @NewLine + newEntry + History ) ;
@SetField("Komment_1_" + iText ; newValue )
);
""
)
);
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln