Autor Thema: kleine Historie  (Gelesen 7616 mal)

Offline marohe

  • Frischling
  • *
  • Beiträge: 28
  • Why not ?
kleine Historie
« am: 12.08.10 - 15:20:13 »
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;"")

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ß





So ein Humbug :-))

Offline Klaas

  • Junior Mitglied
  • **
  • Beiträge: 78
  • Geschlecht: Männlich
Re: kleine Historie
« Antwort #1 am: 12.08.10 - 15:25:53 »
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.
« Letzte Änderung: 12.08.10 - 15:27:24 von Klaas »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: kleine Historie
« Antwort #2 am: 12.08.10 - 15:33:24 »
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

Offline marohe

  • Frischling
  • *
  • Beiträge: 28
  • Why not ?
Re: kleine Historie
« Antwort #3 am: 12.08.10 - 16:11:35 »
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;"")


Warum also nicht wenn ich den aktuellen Feldwert mit abfrage?
So ein Humbug :-))

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: kleine Historie
« Antwort #4 am: 12.08.10 - 16:22:21 »
Was passiert laut Deiner Formel, wenn "@IsDocBeingSaved & !@IsNewDoc" nicht gegeben ist?

Bernhard

Offline marohe

  • Frischling
  • *
  • Beiträge: 28
  • Why not ?
Re: kleine Historie
« Antwort #5 am: 12.08.10 - 16:42:57 »
Hallo Bernhard,

dann passiert nichts  :-: ! Jedefalls nicht mit der Ursprungsformel.

Kein Eintrag, keine Erweiterung, keine Historie. (so solls auch sein)

Zitat
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;"")


Warum also nicht wenn ich den aktuellen Feldwert mit abfrage?

Ich glaube ich steh grad voll aufm Schlauch.. werd erst mal nen Kaffee trinken  :-\

Und das nochmal überdenken.

Danke soweit erst mal...
So ein Humbug :-))

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: kleine Historie
« Antwort #6 am: 12.08.10 - 16:51:42 »
dann passiert nichts  :-:
Yipp, geh erstmal 'nen Kaffee trinken und denk dann nochmals über das "nichts" nach  ;)

Bernhard

Offline Klaas

  • Junior Mitglied
  • **
  • Beiträge: 78
  • Geschlecht: Männlich
Re: kleine Historie
« Antwort #7 am: 13.08.10 - 07:31:25 »
ihr habt recht.

der einzige grund warum ich das so gemacht habe, ist der das ich immer versuche klare strucktutren in meine Masken zu bringen. Deswegen habe ich die Werte getrennt und in einzellne Spalten geschrieben.
Klingt komisch, ist aber so.

Diesen Historienabschnitt kopiere ich glaube ich in fast jede Datenbank. Als ich das mal erstellt habe. Habe ich noch nicht die Funktion @Text(@Now;D0) und @Text(@Now;T0) genutzt. Sollte ich bald mal hier einbauen.

Back to Topic:
Wieso hast du denn !@IsNewDoc drin stehen?
Es ist doch egal ob es ein neues oder ein altes Dokument ist.
Wichtig ist für dich doch nur, das es in der Historie gespeichert wird wenn das Dokument gespeichert ist oder habe ich das Falsch verstande?

Offline marohe

  • Frischling
  • *
  • Beiträge: 28
  • Why not ?
Re: kleine Historie
« Antwort #8 am: 13.08.10 - 13:35:42 »
So, wieder da und noch kein bissl schlauer ;(

Ich bespreche das mal Intern mit einem Noteskollegen.

Danke nochmals für die versuchte Hilfe.


Gruß, marohe

So ein Humbug :-))

BigWim

  • Gast
Re: kleine Historie
« Antwort #9 am: 13.08.10 - 14:05:37 »
Bist Du sicher, dass die Testbedingungen die gleichen sind (alte Formel - neue Formel)?

Denn ich sehe keinen Grund, warum die Erweiterung des Then-Zweigs Fehler verursachen sollte - formeltechnisch gesehen.

Worüber Du Dir Gedanken machen solltest, ist - wie Bernhard mehrfach angedeutet hat - über den Else-Zweig Deiner IF-Anweisung. Denn nichts ist auch "". Was, glaubst Du, zeigt Dir Dein Feld an, wenn ein "" drinne steht ....

Markus

Offline marohe

  • Frischling
  • *
  • Beiträge: 28
  • Why not ?
Re: kleine Historie
« Antwort #10 am: 16.08.10 - 07:59:01 »
Ahhhhhhhh,


wer guggt denn ans Formelende?!?  ;D


Ok, jetzt ist der Groschen gefallen.. Danke nochmal

Gruß marohe

So ein Humbug :-))

BigWim

  • Gast
Re: kleine Historie
« Antwort #11 am: 16.08.10 - 13:09:09 »
wer guggt denn ans Formelende?!? 
z. B. Bernhard - um nur mal einen zu nennen :D


Markus

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz