Hallo Leute,
ich habe hier eine nette Historienfunktion gefunden, die aber leider immer wieder das alte Feld überschreibt. Was aber nicht der rechte Sinn einer Protokollfunktion ist.
Hat da jemand eine Idee, wie ich dem Feld $Historie etwas mehr Gedächtnis beibringe ?
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Stop
If Source.isnewdoc Then Exit Sub
cl$=""
On Error Resume Next
Forall v In vals
f$=Listtag(v)
Set i=source.document.getfirstitem(f$)
If i.text<>v Then
cl$=cl$+f$+": "+Left(v,1000)+" --> "+Left$(i.text,1000)+Chr(10)
v=i.text
End If
End Forall
If cl$<>"" Then
Dim s As New notessession
entry$= Chr$(10) +_
Cstr(Now)+" - Änderung durchgeführt von "+ s.commonusername+ Chr(10)+Trim$(cl$)+Chr(10)+" "
source.document.~$Historie= entry$
End If
End Sub
Vielen Dank für Eure Hilfe
Don Pasquale
@Ata : Großer Meister
hier meine Lösung (genauso wie Du es beschrieben hast.)
Im Feld Historie habe ich
Mehrfachwerte zulassen
Werte trennen bei Eingabe mit Leerzeile
Getrennte Werte Anzeigen mit Leerzeile
Das mit den Mehrfachwerten war auch wohl weshalb alle meine Ansätze nicht geklappt hatten.
Sub Postopen(Source As Notesuidocument)
Stop
Forall i In source.document.items
show_hist = True
If Lcase(Left$(i.name,3))="tm_" Then show_hist = False ' diese felder nicht sammeln
If Left$(i.name,1)<>"$" And show_hist Then vals(Lcase(i.name))=i.text
End Forall
End Sub
Sub Postsave(Source As Notesuidocument)
Forall i In source.document.items
show_hist = True
If Lcase(Left$(i.name,3))="tm_" Then show_hist = False ' diese felder ignorieren
If Left$(i.name,1)<>"$" And show_hist Then vals(Lcase(i.name))=i.text
End Forall
End Sub
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Stop
If Source.isnewdoc Then Exit Sub
cl$=""
On Error Resume Next
Forall v In vals
f$=Listtag(v)
Set i=source.document.getfirstitem(f$)
If i.text<>v Then
cl$=cl$+f$+": "+Left(v,1000)+" --> "+Left$(i.text,1000)+Chr(10)
v=i.text
End If
End Forall
If cl$<>"" Then
Dim s As New notessession
entry$= Chr$(10) +_
Cstr(Now)+" - Änderung durchgeführt von "+ s.commonusername+ Chr(10)+Trim$(cl$)+Chr(10)+" "
source.document.~$Historie= Arrayappend(source.document.~$Historie, entry$ )
End If
End Sub
und im Feld $Historie
@If(@IsNewDoc; ""; $Historie)
So funzt es prima.
;D ;D ;D
Vielen Dank
Ciao
Don Pasquale