Domino 9 und frühere Versionen > Entwicklung

kleine Historie

(1/3) > >>

marohe:
Hallo Ihr lieben,

bräuchte bitte mal eure Hilfe, bzw einen Denkanstoß.

Ich habe eine Form, die ein Feld "Bearbeitbare Dialogliste" hat (projpos).

Hier werden entweder vorhandene  Werte ausgewählt, oder bei Bedarf neue eingetragen.

Für dieses Feld benötige ich eine fortlaufende Historie, in was, wann von wem geändert wurde.

Mein Lösungsgedanke war:


--- Code: ---@If(@IsDocBeingSaved & !@IsNewDoc;@NewLine + projpos + "--"
                   +" geändert durch "+@Name([CN];@UserName)+ " am "+@Text(@Now)+@NewLine+sÄnderungshistorie;"")
--- Ende Code ---

Soweit ok, nur wird die Historie nicht fortgeführt, sondern der Eintrag immer wieder überschrieben, und dann natürlich mit dem neuen Wert aus dem Feld (proipos)!

Weiß jemand Rat?


Danke und Gruß





Klaas:
Ich mache das immer so.

Wobei die Felder Mehrfachwerte sein müssen mit ";" oder "Neue Zeile" getrennt.

Datum:
a:=@GetField("HiAenderungsdatum");
@Subset(@Trim(@If(@IsDocBeingSaved; a : @Left(@Text(@Now);" "); a)); -5)
Zeit:
a:=@GetField("HiAenderungszeit");
@Subset(@Trim(@If(@IsDocBeingSaved; a : @Right(@Text(@Now);" "); a)); -5)
User:
a:=@GetField("HiBearbeiter");
@Subset(@Trim(@If(@IsDocBeingSaved; a : @Text(@Name([CN];@UserName)); a)); -5)

Erläuterung:
Mit Subset, -5 werden nur die letzten 5 gespeicherten Daten gespeichert. Alles weiter wird verworfen.
Mit Trim, werden die vorhherigen Mehrfachwerte mit dem Aktuellen mehrfachwert verkettet.

koehlerbv:
Klaas, warum in aller Welt speicherst Du Datums-/Zeitwerte als Text ab?
Und warum legst Du den Speicherzeitpunkt zweimal ab? Wenn Du schon Datum von Zeit trennen willst (wozu auch immer - wirst Du nach erzeugten Feldern bezahlt?  ;D), dann würde es reichen, den Speicherzeitpunkt einmal abzulegen und dann als computed for display nochmals anders dazustellen.

Was den Code von "marohe" angeht, so sollte sich dieser mal überlegen, was im Feld passiert, wenn das Dokument *nicht* gespeichert wird (also beispielsweise nur geöffnet).

Bernhard

marohe:
Danke euch beiden für die Idee und Anregung, trotzdem ist der Groschen noch nicht gefallen.


@Klaas
hmm, das ist sicher eine Idee, aber das mit dem Datum und der Zeit im Textformat verstehe ich nicht wirklich. Außerdem muss ich einen Feldwert dazu auslesen.


@koehlerbv
Das Feld soll sich ja nicht ändern wenn das Doc nur geöffnet wird, sondern definitiv nur wenn der Wert des Feldes geändert wird, und danach gespeichert wurde.

Bei der Ursprungsformel wird die Historie problemlos fortgeführt:


--- Code: ---@If(@IsDocBeingSaved & !@IsNewDoc;
                   "Geändert durch "+@Name([CN];@UserName)+ " am "+@Text(@Now)+@NewLine+sÄnderungshistorie;"")
--- Ende Code ---


Warum also nicht wenn ich den aktuellen Feldwert mit abfrage?

koehlerbv:
Was passiert laut Deiner Formel, wenn "@IsDocBeingSaved & !@IsNewDoc" nicht gegeben ist?

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln