Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Bruce Willis am 04.08.04 - 10:53:47
-
Hallo,
ich habe eine Optionsfläche - bearbeitbar - mit Optionen:
Neu
In Arbeit
Beendet
Die User können die Optionen ändern.
Weiss jemand, wie ich so ein Protokoll ähnlich wie hier unten automatisch bekommen könnte?
Status geändert (wann, wer, von, auf):
04.08.2004 08:30 - Bruce Willis - Neu - In Arbeit
04.08.2004 09:35 - Arni - In Arbeit - Neu
04.08.2004 10:50 - Bruce Willis - Neu - In Arbeit
04.08.2004 11:55 - Bruce Willis - In Arbeit - Beendet
Oder nur den neuen Status reinschreiben, falls es mit dem alten sehr schwer ist...
Danke fürs Lesen.
Gruß
Bruce
P.S. Anbei ist ein Beispiel, wie ein Protokoll vom Dokument-Editieren ins Feld "EditHistory" geschrieben wird...
@If(@IsNewDoc; EditHistory;
@If(@IsDocBeingSaved;
@Explode(@Implode(EditHistory; "~") + "~" + "Edited by " + @ProperCase(@Name([CN];@UserName)) + " on "+ @Text(@Now); "~"); EditHistory))
-
hmmm...eine History schreiben gehört doch eigentlich zu den basic- aufgaben eines Entwicklers...
Aber egal..
Du brauchst ein Feld "oldStatus", bearbeitbar oder berechnet auf sich selbst, versteckt...
und dann im History- Feld (berechnet, mehrfachwerte, Trennzeichen neue Zeile) folgenden code:
newEntry := @Now + " - " + @Name( [CN] ; @UserName ) + " - " + oldStatus + " - " + Status;
@If( !@IsDocBeingSaved | oldStatus = Status; @Return( History ) ; "" );
@SetField( "oldStatus" ; Status );
History : newEntry
Oder wenn Du den neusten Eintrag oben haben willst:
newEntry : History
Damit das Feld bei (sehr sehr) vielen Änderungen nicht zu gross wird, und irgendwann über die 32k Grenze wächst oder einfach unübersichtlich wird, kannst Du natürlich das ganze auch noch auf die letzten 10 Änderungen beschränken:
@Subset( History : newEntry ; -10 );
bzw (fürs zweite Beispiel):
@Subset( newEntry : History ; 10 )
HTH
Tode
-
Hallo Tode,
vielen Dank!
Leider ändert sich das Feld "oldStatus" nicht... :(
Was ist denn falsch?
Gruß
Bruce
---------
1. Feld "Status" - Optionsfläche, bearbeitbar, Felder bei Schlüsselwortänderungen aktualisieren
2. Feld "oldStatus" - Text, bearbeitbar, versteckt.
3. Feld "StatusChanged" - Text, berechnet, mehrfachwerte, Trennzeichen neue Zeile) mit dem folgenden Code:
newEntry := @Text(@Now) + " - " + @Name( [CN] ; @UserName ) + " - " + @Text(oldStatus) + " - " + @Text(Status);
@If( !@IsDocBeingSaved | oldStatus = Status; @Return( StatusChanged ) ; "" );
@SetField( "oldStatus" ; Status );
StatusChanged : newEntry
-
vermutlich die Reihenfolge der Felder in der Maske...
die Formeln sehen alle in Ordnung aus... stell mal das Feld oldStatus UNTERHALB des Feldes StatusChanged... Vielleicht klappt es dann...
HTH
Tode
-
UNTERHALB !!!!
Das war die Lösung!
D A N K E !!!!
Jetzt funktioniert alles.
Gruß
Bruce