Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: adminnaddel am 19.08.02 - 10:15:50

Titel: Berechnete Felder zur Anzeige füllen.......
Beitrag von: adminnaddel am 19.08.02 - 10:15:50
Hallo liebe Gemeinde,
etwas ganz einfaches für euch!:

ich habe 4 Felder in einer Maske
1.= Ersteller
2.= Erstellt am
3.= Geändert durch
4.= Geändert am

zu1 = zB @Name([CN],@UserName)
zu2 = zB @Created
zu3 = ??????????????????????????????????
zu4 = ??????????????????????????????????

und wie kann ich diese Informationen in einer Ansicht präsentieren.
DANKE

Bis bald
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: Dija am 19.08.02 - 10:51:57
Hallo adminnaddel,

versuch mal die Formel-@Funktion

zu 3: @Modified + @UserName
zu 4: @Modified

Gruss Dija  ;)
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: Glombi am 19.08.02 - 10:54:00
@adminnaddel:
zu 3) @Modifeid
zu 4)
@If(
@Elements($UpdatedBy) > 1;
   @Subset($UpdatedBy;-1);
 $UpdatedBy
)

Hinweis:
Die Funktion @Modified funktioniert nur in Spaltenformeln einwandfrei. Wenn sie dagegen in Formeln für ein berechnetes Feld oder in einer Anzeige-Formel verwendet wird, gibt @Modified einen Wert wieder, der für den Zeitpunkt steht, als das Dokument zum vorletzten Mal gespeichert wurde.

Gruß
Andreas
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: adminnaddel am 19.08.02 - 10:57:25
Ja, dann danke ich schon mal für die raschen Antworten und ich werde es gleich probieren...Danke

MfG
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: adminnaddel am 19.08.02 - 11:12:56
Hi an Euch,

das mit @Modified + @UserName klappt nicht und nur @Modified ist ja ein bisschen ??? weil mir ja dann nur das Datum ausgeworfen wird.
Es ist also immer noch die Frage offen: wie lasse ich mir den Feldwert wiedergeben von demjenigen der mir das Dokument ändert?
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: rar am 19.08.02 - 12:34:49
Ich mache das immer so...
Folgende Formeln in den beiden Feldern:
3. Feld: @If(GeaendertDurch = "";@Name([CN];@UserName);GeaendertDurch)
4. Feld: @If(GeaendertAm = "";@Now;GeaendertAm)

Und ins Querysave der Maske kommt noch das:

FIELD GeaendertDurch:=GeaendertDurch;
FIELD GeaendertAm:=GeaendertAm;
@SetField("GeaendertDurch";@Name([CN];@UserName ));
@SetField("GeaendertAm";@Now)


Hoffe, daß dir das hilft.

-rar
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: Glombi am 19.08.02 - 12:35:41
Mit der Formel

@If(
@Elements($UpdatedBy) > 1;
   @Subset($UpdatedBy;-1);
 $UpdatedBy
)


bekommst Du den Namen desjenigen Users, der zuletzt geändert hat.

Habe bei meiner ersten Antwort die Nummerierung vertauscht, @Modified liefert das Datum der letzten Änderung zurück, $UpdatedBy wird automatisch von Notes gesetzt und enthält die Liste alle User, die das Dokument gespeichert haben.

Gruß
Andreas
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: adminnaddel am 19.08.02 - 13:20:38
Hi Glombi,

das ist ja schon garnicht schlecht, aber nicht ganz das was ich wollte.
Denn, nun wird in der Spalte der View der Inhalt des Feldes angezeigt....dh der Ersteller eines Docs wird gleich durch $UpdatedBy gesetzt.
Die Spalte sollte aber solange wie nichts am Doc geändert wird, frei bleiben.
Desweiteren wird mir angezeigt CN=Müller/OU=XYZ/O=X
Es wäre toll wenn dieses mit nur mit dem Namen gehen würde.

Vielleicht hast du, oder auch ihr noch eine Lösung parad.

Danke
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: Glombi am 19.08.02 - 13:37:52
Hi,
die folgende Formel zeigt den Namen an, wenn das Dokument mindestens einmal geändert wurde, denn nur dann ist das Systemfeld $Revisions vorhanden:

_Name :=
@If(  
@IsAvailable($Revisions);
  @If(
     @Elements($UpdatedBy) > 1;  
         @Subset($UpdatedBy;-1);  
      $UpdatedBy  
   );
""
);

@If(_Name != "";@Name([CN];_Name);"")


Wegen der Darstellung von Notes-Namen solltest Du in der Hilfe bzgl. der @Funktion @Name nachsehen.

@name([CN];... ) liefert nur den Common Name, also den Namen ohne OU=, O= und C= zurück.

Gruß
Andreas
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: adminnaddel am 19.08.02 - 14:30:01
Hi,

wenn es stimmt das $Revisions & $UpdatedBy automatisch erstellt werden und sie nicht erstellen muss!, klappt die ganze Sache nicht. Es wir noch immer von Anfang an der Name mir gezeigt. Diese Formel funktioniert nicht!

Trotzdem danke

Grüsse
Titel: HalRe: Berechnete Felder zur Anzeige füllen.......
Beitrag von: Wipe am 19.08.02 - 14:47:34
Hallo adminnaddel,

ich habe diese Information bei mir wie folgt gelöst:

1. Teilmaske mit Tabelle angelegt zwecks sauberer Ansicht

2. Folgende Felder angelegt

Feld _Author - Berechnet beim anlegen
@Subset(@Name([CN];@Author );1)

Feld _Erstelldatum - Berechnet beim anlegen
@Created

Feld _UpdateBy - Berechnet
@Subset(@Name([CN];$UpdatedBy );-1)

Feld _Updatedatum - Berechnet
@Modified

Somit wird zwar das $UpdateBy befüllt aber beim ersten Speichern des Doks wird kein Eintrag in Feld _UpdateBy eingetragen - erst bei der 2ten Änderung.

Hoffe es hilft weiter.

Gruss
Bubble
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: adminnaddel am 19.08.02 - 15:07:54
Danke Bubble,

das war sehr einfach erklärt und hat wunderbar funktioniert! Aber auch an die anderen Dank für die Bemühungen!

Nun kann es weiter bei mir gehen.... 8)

Bis bald
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: Wipe am 20.08.02 - 09:06:21
Hallo adminnaddel,

habe noch mal das ganze geprüft - also

Feld _Author und Erstelldatum sind "Berechnet"

Feld _UpdateBy und _Updatedatum sind "Berechnet zur Anzeige" und in den Feldeigenschaften der Hide Wenn Eigenschaft kannst Du noch Verbergen wenn "@IsNewDoc" eintragen.

Gruss
Bubble  :D
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: Tyler am 20.09.02 - 11:03:00
hmmm, habe nu mehrfach mit diesen formeln rumgespielt, aber komischerweise werden die felder updateby und updatedatum erst beim zweiten ändern des dokumentes aktualisiert.
und @modified gibt auch immer den falschen wert zurück, nämlich minus 1 tag.

was mache ich falsch ?
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: Wipe am 20.09.02 - 11:17:06
Hi Tyler,

habs mir nochmal angeschaut und die TM in meine SpielDB eingebaut - fluppt wunderbar.

Das mit 1 Tag minus  ???  ???  ???

Und Update - klar ab dem 2ten Öffnen der DB wird dies erst wirksam ( Speichern / F9)
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: Tyler am 20.09.02 - 13:00:24
hmm, also bei updatedby steht ein anderer mitarbeiter drin. nun ändere ich das dokument und speicher und schliesse es. der name des anderen mitarbeiters bleibt.
wenn ich es allerdings nocheinmal ändere und speichere und schliesse, dann steht mein name drin.

da stimmt doch dann etwas nicht, warum macht er das erst beim 2ten ändern ???
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: Wipe am 20.09.02 - 15:43:16
So jetzt hab ich mal wieder Zeit.

Also Tyler hab folgendes getestet:

1. Neues Doc angelegt
- Erstellerinfo werden angezeigt
- Updateinfo sind leer
- Nach Speichern sind die Updateinfos in den Felder hinterlegt aber erst durch aktuallisieren (F9) sichtbar.

2. Erstelltes Doc bearbeiten mit anderem Namen
- Erstellerinfo unverändert
- Updateinfo beinhaltet jetzt die Ersteinträge vom Ersteller
- Nach Speichern werden die Updatefelder befüllt und nach aktuallisieren (F9) auch zur Ansicht gebracht

Schau Dir doch mal die Feldinfos entsprechend für das Doc an. So kannst Du schön nachvollziehen bei welcher Aktion sich irgendwelche Feldwerte ändern.
Titel: Re: Berechnete Felder zur Anzeige füllen.......
Beitrag von: Tyler am 20.09.02 - 16:31:27
hi bubble,

hmmmm, ich verstehe es nicht...ist echt zum verücktwerden.
ich habe alles genauso gemacht wie in deinem ersten posting in diesem thread beschrieben, bis auf punkt 1, den ich nicht verstehe.
aber die felder die du hast, habe ich auch und auch mit denselben formeln.
wie gesagt, der effekt bei mir ist eben der, dass erst nach der 2ten änderung im dokument das feld updateby einen neuen wert in form des namens bekommt.
die erste änderung wird irgendwie ignoriert, zumindest von diesem feld.