Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: botschi am 11.10.07 - 17:43:27

Titel: Kann mir mal eben jemand bei dieser hide-when-Formel helfen?
Beitrag von: botschi am 11.10.07 - 17:43:27
Meine Formel in einem Feld (zur Anzeige berechnet):
_2 := @GetProfileField("Profildokument";"werausliefern");
@If(@IsMember(_2;@UserNamesList);"hallo";1)

_2 enthält eine Menge Namen, u.a. auch meinen. Trotzdem sagt die Formel 1...!

Matthias
Titel: Re: Kann mir mal eben jemand bei dieser hide-when-Formel helfen?
Beitrag von: Glombi am 11.10.07 - 17:47:38
Wenn es nur auf den aktuellen User gehen soll:

_2 := @GetProfileField("Profildokument";"werausliefern");
@If(@IsMember(@UserName;_2);"hallo";1)
Titel: Re: Kann mir mal eben jemand bei dieser hide-when-Formel helfen?
Beitrag von: koehlerbv am 11.10.07 - 17:55:39
Wenn aber auch Rollen und Gruppen eine Rolle spielen können, dann ist das mit @UserNamesList schon nicht schlecht. Muss man nur anders verwenden:
@If (@UsernamesList *= _2; "hallo", 1)

By the way: Deine Reaktion auf @if ist grenzwertig: Entweder ein String oder eine Zahl. Sowas macht man nicht  ;)

Bernhard
Titel: Re: Kann mir mal eben jemand bei dieser hide-when-Formel helfen?
Beitrag von: pete_bla am 11.10.07 - 17:58:18
Hi,

und ist _2 wirklich eine Liste?
für Namen, zumindest Canoncial würde ja auch @Contains reichen.
Dann ists wurscht ob liste oder flach.

Gruss, Pete(r)

Titel: Re: Kann mir mal eben jemand bei dieser hide-when-Formel helfen?
Beitrag von: botschi am 11.10.07 - 18:00:59
Hast ja Recht, ich konnte die 0 nur nicht mehr sehen  >:(

Vielen Dank, daß ihr nach einem langen Tag meinen Wald vorm Kopf gerodet habt.

Danke, Matthias
Titel: Re: Kann mir mal eben jemand bei dieser hide-when-Formel helfen?
Beitrag von: koehlerbv am 11.10.07 - 18:04:15
Das mit der 0 war ja nur ein Nebengeräusch  ;)

Für welche Methode hast Du Dich denn nun entschieden? @IsMember oder den genialen Permutationsoperator "*="?

Bernhard
Titel: Re: Kann mir mal eben jemand bei dieser hide-when-Formel helfen?
Beitrag von: botschi am 11.10.07 - 18:10:10
Eigentlich stehe ich auf den Permutationsoperator (das Wort kannte ich bis eben nicht), aber Rollen und Gruppen spielen keine Rolle.
Für die bessere Nachvollziehbarkeit, wenn ich in 6 Monaten nochmal drauf gucke, habe ich mich für die Lösung von Andreas entschieden...

Wobei ich Deine Lösung in meine Trickkiste aufgenommen habe.

Matthias
Titel: Re: Kann mir mal eben jemand bei dieser hide-when-Formel helfen?
Beitrag von: koehlerbv am 11.10.07 - 18:41:39
Wenn Du aber nach den nachvollziehbaren sechs Monaten auf einmal auf die Idee kommst, in das Feld "werausliefern" die Gruppe "Auslieferer" oder die Rolle "[Lieferservice]" aufnimmst, bist Du mit @UserNamesList *= _2 besser aufgehoben. Das wäre weitsichtiger  ;)
Andreas' "@If(@IsMember(@UserName;_2);"hallo";1)" ist da ja gleich mit inkludiert.

Nur so als Tipp ...

Bernhard
Titel: Re: Kann mir mal eben jemand bei dieser hide-when-Formel helfen?
Beitrag von: botschi am 12.10.07 - 10:27:16
Ich habs jetzt mit Bernhards Formel gemacht, man muss sich selber ja auch weiter entwickeln  ;D

Allerdings mit negation (ich hoffe es funktioniert so):
@If(status = _S1 & !@usernamesList *= _1;1;0)

Kann Bernhard mir vielleicht noch einen Satz zu dem Permutationsoperator sagen? Warum muss der hier kommen?

Matthias
Titel: Re: Kann mir mal eben jemand bei dieser hide-when-Formel helfen?
Beitrag von: DerAndre am 12.10.07 - 10:42:33
Schau dir mal diesen Best Practices an

http://atnotes.de/index.php?topic=18203.0

status = _S1 & !@usernamesList *= _1

Liefert True oder False zurück und das reicht dann schon  :)
Titel: Re: Kann mir mal eben jemand bei dieser hide-when-Formel helfen?
Beitrag von: HarryB am 12.10.07 - 11:11:39
Statt @IsMember ist vielleicht auch @IsNotMember hilfreich.

@IsNotMember arbeitet hier ähnlich wie der Permutationsoperator: es gibt nämlich @True zurück, wenn es keine Schnittmenge zwischen den beiden Listen gibt.

Viele Grüße
Harry
Titel: Re: Kann mir mal eben jemand bei dieser hide-when-Formel helfen?
Beitrag von: botschi am 12.10.07 - 11:24:37
Das mit dem Rückgabewert kenne ich. Habs nur so gemacht, damit ich es euch besser vermitteln kann, was ich möchte. So sieht meine Formel ungefähr aus:

Code
@If(
status = _S1 & !@UserNamesList *= _1;1;
status = _S2 & !@UserNamesList *= _2;1;
status = _S3 & !@UserNamesList *= _3;1;
status = _S3 & d_relevant != "" & dprfungdurch != "" & !@UserNamesList *= _4;1;
status = _S3 & g_relevant != "" & gprfungdurch != "" & !@UserNamesList *= _5;1;
status = _S3 & c_relevant != "" & cprfungdurch != "" & !@UserNamesList *= _6;1;
status = _S3 & p_geprft != "" & !@UserNamesList *= _7;1;
status = @GetProfileField("Profildokument";"phase0");0
;0)

Ich hab mehrere Bedngungen, deswegen habe ich mich für das @If entschieden.

Matthias