Autor Thema: Änderungen von Optionsfläche protokollieren  (Gelesen 2367 mal)

Offline Bruce Willis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.002
  • Geschlecht: Männlich
  • Wer nicht wagt...
Änderungen von Optionsfläche protokollieren
« 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))

« Letzte Änderung: 05.08.04 - 00:27:59 von Bruce Willis »
nobody is perfect but i'm pretty close 

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re:Änderungen von Optionsfläche protokolieren
« Antwort #1 am: 04.08.04 - 11:05:51 »
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


Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Bruce Willis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.002
  • Geschlecht: Männlich
  • Wer nicht wagt...
Re:Änderungen von Optionsfläche protokolieren
« Antwort #2 am: 04.08.04 - 13:38:30 »
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

« Letzte Änderung: 04.08.04 - 13:56:04 von Bruce Willis »
nobody is perfect but i'm pretty close 

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re:Änderungen von Optionsfläche protokolieren
« Antwort #3 am: 04.08.04 - 13:58:17 »
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
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Bruce Willis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.002
  • Geschlecht: Männlich
  • Wer nicht wagt...
Re:Änderungen von Optionsfläche protokolieren
« Antwort #4 am: 04.08.04 - 14:13:55 »
UNTERHALB !!!!

Das war die Lösung!

D A N K E !!!!

Jetzt funktioniert alles.

Gruß
Bruce
nobody is perfect but i'm pretty close 

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz