Lotus Notes / Domino Sonstiges > Tipps und Tricks
[Tipp] Dokument-Historie per Copy & Paste
TMC:
Hi,
bisher habe ich immer die Dokumenthistorie in einer Maske über 2 Felder abgebildet:
HistoryTimes:
--- Code: ---@If (
@IsNewDoc; @Text(@Now);
@IsDocBeingSaved; HistoryTimes + @NewLine + @Text(@Now);
HistoryTimes
)
--- Ende Code ---
HistoryNames:
--- Code: ---@If (
@IsNewDoc; @Name([CN]; @UserName);
@IsDocBeingSaved; HistoryNames + @NewLine + @Name([CN]; @UserName);
HistoryNames
)
--- Ende Code ---
Nachteile:
- jedes Zwischenspeichern wird protokolliert
- Liste wird ewig lang bei vielen Änderungen
Lösung
Folgender Code im Feld HistoryNames:
@If(@IsDocBeingSaved; 0; @Return(HistoryNames));
last_guy := @Subset(HistoryNames; 1);
FIELD HistoryTimes := HistoryTimes;
hist_len := @Elements(HistoryNames);
@If(hist_len = 0;
@Do(
@SetField("HistoryTimes"; @Now);
@Name([CN]; @UserName)
);
last_guy != @Name([CN]; @UserName) | @Subset(HistoryTimes; 1) < @Adjust(@Now; 0;0;0;-12;0;0);
@Do(
@SetField("HistoryTimes"; @Now : @Subset(HistoryTimes; 9));
@Name([CN]; @UserName) : @Subset(HistoryNames; 9)
);
HistoryNames
)
Vorteile:
- Anzahl Zeilen kann eingeschränkt werden, Default ist hier 10 (siehe Zahl 9 im Code)
- Speicherungen der letzten x Stunden werden nicht protokolliert, Default ist hier
12 Stunden - außer ein anderer User speichert
Hab unten eine nsf angehängt, einfach die Maske öffnen, und die History-Felder per Copy & Paste in eine beliebige Maske übernehmen.
Eine Konfiguration über Setupdokument der Anzahl Zeilen etc. könnte man natürlich auch noch simpelst einbauen....
Grüße,
TMC
Text für Atnotes Volltextsuche:
History
Historie
Änderungshistorie
protokollieren
Änderungen
**EDIT **
Kleinen Fehler korrigiert (Namen erschienen nicht immer in der jew. nächsten Zeile)
Semeaphoros:
Obacht: Ulrich hat Konjunktive nicht gerne .... ;D
TMC:
;D
@Jens: Diese sprachliche Ungewissheit beziehst do Du wohl auf folgendes:
--- Zitat ---Eine Konfiguration über Setupdokument der Anzahl Zeilen etc. könnte man natürlich auch noch simpelst einbauen....
--- Ende Zitat ---
OK, nun also voll konkret:
Über
_AnzZeilenWeilJaEknoriKeineKonjunktiveMag := @GetProfileField("AnzahlZeilen"; "KonjnktivVermeidSetupDoc")
Im Code dann das @Subset(HistoryTimes; 9)); mit
@Subset(HistoryTimes; _AnzZeilenWeilJaEknoriKeineKonjunktiveMag));
und @Subset(HistoryNames; 9) mit
@Subset(HistoryNames; _AnzZeilenWeilJaEknoriKeineKonjunktiveMag)
ersetzen.
;)
TMC
*Edit*
Da hat sich wohl ein englischer Aussprache-Bug eingeschlichen, Korrektur do/du
Semeaphoros:
Wow
;D ;D
eknori (retired):
ich gucke doch nicht in jeden Thread ;D
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln