Autor Thema: Problem mit Gruppenauflösung  (Gelesen 5286 mal)

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Problem mit Gruppenauflösung
« am: 22.02.07 - 15:46:05 »
In der Eingabeumsetzung des Feldes "NamensfeldUmDasEsGeht" löse ich, falls eine Gruppe eingegeben wird, diese in die einzelnen Usernamen auf:

tmpFieldName:=NamensfeldUmDasEsGeht;
tmpGroupMembers:=@IfError(@DbLookup("":"NoCache"; @Subset (@DbName; 1):"names.nsf"; "($Users)"; tmpFieldName; "Members"); "");
@If(tmpFieldName!="";@Implode(@Name([CN];tmpFieldName:tmpGroupMembers);", ");"")

Funktioniert soweit. Allerdings zeigt das Feld dann die Gruppe noch einmal mit an. Hat jemand, der nicht so wie ich aktuell an einer schweren Gehirnverknotung leidet, eine Idee wie ich die Rückgabe der Gruppenbezeichnung selbst vermeiden kann?  :-:
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Gruppenauflösung
« Antwort #1 am: 22.02.07 - 15:51:32 »
Du forderst das doch auch explizit an:
@If(tmpFieldName!="";@Implode(@Name([CN];tmpFieldName:tmpGroupMembers);", ");"")
Wenn Du das weglässt, funktioniert es auch so wie gewünscht.

Bernhard

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: Problem mit Gruppenauflösung
« Antwort #2 am: 22.02.07 - 15:58:24 »
Negativ, Sir: wenn der Anwender einen oder mehrere Einzelnamen eingibt, werden diese nicht angezeigt, wenn ich den Ursprungsfeldwert raus lasse, da ja das tmpGroupMembers in diesem Fall nichts zurückliefert.
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Gruppenauflösung
« Antwort #3 am: 22.02.07 - 16:29:01 »
Davon war aber im Ausgangspost noch nicht die Rede ...

Warum gehst Du dann nicht in einer Schleife durch NamesFeldUmDasEsGeht? Ausserdem sollte sich hier der Umstieg auf LS lohnen - hiemit kannst Du auch nested groups rekursiv auflösen.

Bernhard

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: Problem mit Gruppenauflösung
« Antwort #4 am: 22.02.07 - 17:38:40 »
Zitat
Davon war aber im Ausgangspost noch nicht die Rede ...
Sorry. Habe gedacht, Du kannst Gedanken lesen ;)

Zitat
Ausserdem sollte sich hier der Umstieg auf LS lohnen
Ich würde das gerne einfach über eine Eingabeumsetzung lösen, verschachtelte Gruppen benutzen wir mW nicht.

Zitat
Schleife
Ja, danke, da hast Du wohl Recht - ich habe mich aber damit in der Formelsprache noch nicht so recht angefreundet. Wie würdest Du das angehen?
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Gruppenauflösung
« Antwort #5 am: 22.02.07 - 17:56:38 »
Ich würde das gerne einfach über eine Eingabeumsetzung lösen, verschachtelte Gruppen benutzen wir mW nicht.
Wirkliche Programmierer verwenden solcherart Konjunktive nicht, sondern rechnen immer mit dem schlimmsten!

Die Eingabeumsetzung kannst Du auch mit Script benutzen: Das PostRecalc Event ist Dein Freund.

Wenn Du doch mit @functions arbeiten willst:
Schleifen mit Formelsprache sind incl. Beispielen in der DesignerHelp sehr gut erklärt.

Bernhard

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: Problem mit Gruppenauflösung
« Antwort #6 am: 22.02.07 - 19:40:05 »
Zitat
Wirkliche Programmierer
Komm mal runter, Junge.

Zitat
PostRecalc Event
Danke für den Hinweis, daran habe ich nicht gedacht.
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: Problem mit Gruppenauflösung
« Antwort #7 am: 22.02.07 - 22:46:18 »
Wusst ich doch, dass das auch mit schlappem Skript funktioniert  ;D
Hier das Ganze noch einmal fürs Forum:

Code
tmpFieldName:=NamensfeldUmDasEsGeht;
tmpGroupMembers:=@IfError(@DbLookup("":"NoCache"; @Subset (@DbName; 1):"names.nsf"; "($Users)"; tmpFieldName; "Members"); "");
tmpPerson := "";
@For(n := 1; n <= @Elements(tmpFieldname); n := n + 1;
@If(@DbLookup("":"NoCache"; @Subset (@DbName; 1):"names.nsf"; "($Users)"; tmpFieldName[n]; "Members")="";tmpPerson:=tmpPerson:tmpFieldName[n];""));
@If(tmpFieldName!="";@Trim(@Unique(@Name([CN];@If(@Subset(@DbName;1)="";tmpFieldName;tmpPerson:tmpGroupMembers))));"")

Die Formel löst in der Eingabeumsetzung eines Namensfeldes die Gruppe(n) in die jeweiligen Usernamen auf und entfernt die Bezeichnung der Gruppe selbst; Einzelnamen werden übernommen. Known Limitations: wie B. schon richtig erwähnt hat, funktioniert das bei verschachtelten Gruppen nicht. Wenn man von einer lokalen Replik aus arbeitet, wird die Gruppe erst beim nächsten Recalc von einer Server-Replik aus aufgelöst. Und die "names.nsf" muss natürlich auch im Zugriff sein.
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Gruppenauflösung
« Antwort #8 am: 23.02.07 - 01:11:30 »
Klar kriegt man sowas ab R6 auch mit @functions hin - ich hatte ja genau darauf hingewiesen. Und wenn man den Code noch unleserlicher / unwartbarer machen will: Damit geht sogar Rekursion (in diesem Fall)  ;D

Eine Frage noch: Warum kommt das
Code
@If (@Subset (@DbName; 1) = ""
erst, wenn eigentlich schon alle Messen gelesen sind? Die Operation sollte doch eigentlich gleich abgebrochen werden, wenn auf eine lokale DB "NAMES.NSF" zugegriffen wird ...

Komm mal runter, Junge.
Was das angeht: Ich bin kein "Junge". Ich stehe aber zu meiner Aussage.

Bernhard

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Problem mit Gruppenauflösung
« Antwort #9 am: 23.02.07 - 07:42:44 »
..und noch so als Info:

@ifError gibt es ab R7 nicht mehr (funktioniert aber noch)  8) 
Es macht auch den Code unübersichtlich  ???

Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline jo@chim

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
Re: Problem mit Gruppenauflösung
« Antwort #10 am: 23.02.07 - 09:30:29 »
@koehlerbv:
Zitat
Ich bin kein "Junge"
Mein lieber Bernhard - Deine Bemerkung weiter oben, auf die ich mich damit bezogen habe, kam im Kontext entweder arrogant rüber oder provokativ. Oder beides. Insofern war die Re unter Gleichaltrigen schon angebracht, IMHO  :-*
Aber lassen wir das.

@Dirk: Ich finde die Notes-Formelsprache an sich schon immer etwas unübersichtlich (auch wenn ich inzwischen eingesehen habe, dass sich manche Dinge besser damit lösen lassen als mit LS).

Btw, auch wenn es an dieser Stelle etwas OT ist: was ist den der "7er Nachfolger" von @iferror?
Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Problem mit Gruppenauflösung
« Antwort #11 am: 23.02.07 - 10:57:40 »
Es gibt keinen Nachfolger!
Back to the roots  8)

@if( @IsError( Me ) ; You ; Me )   
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz