Lotus Notes / Domino Sonstiges > Tipps und Tricks

[Tipp] Dokument-Historie per Copy & Paste

(1/3) > >>

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