Autor Thema: R5 Formelsprache: Schleifenersatz gesucht  (Gelesen 2119 mal)

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
R5 Formelsprache: Schleifenersatz gesucht
« am: 07.05.04 - 21:31:33 »
In R5 haben wir ja leider keine Schleife in der Formelsprache verfügbar.

Ich habe hier in einer DB ein Setup-Dokument. Dort stehen in einem Checkbox-Feld die Rollen der ACL (db.ACL.roles). Wenn eine Rolle selektiert, darf der User, der Mitglied dieser Rolle ist, das Dokument bearbeiten.

Das ganze frage ich via Function in Postopen und Querymodechange ab, Auszug:


Code
   Forall strRoleProfile In vRolesProfile 'Go through the profile doc setting entries
      
      Forall strRolename In vRolesFromACL 'go through the ACL Userroles
         If strRolename = strRoleProfile Then
            iUserIsAllowed = True
            Exit Forall
         End If
      End Forall
      
      If iUserIsAllowed = True Then Exit Forall
      
   End Forall
(vRolesProfile = das MultiValue-Feld des Profildokumentes, vRolesFromACL = Evaluate("@UserRoles"))


Gibt es eine Möglichkeit, eine ähnliche Abfrage in der HideWhen - Formel eines Buttons zu platzieren?

Also: Schaue nach, ob eine dem User zugeordneten Rollen dem Eintrag des Profildokumentes entspricht. Wenn ja: Zeige den Button an.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:R5 Formelsprache: Schleifenersatz gesucht
« Antwort #1 am: 07.05.04 - 21:46:10 »
Gib' dem mächtigen Operator *= eine Chance. Der überprüft, ob denn eine Schnittmenge existiert.

HTH,
Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:R5 Formelsprache: Schleifenersatz gesucht
« Antwort #2 am: 07.05.04 - 21:55:23 »
Danke schonmal, Bernhard.

Yoo, der * ist mächtig  ;D

Aber laufe ich da nicht in eine Falle, wenn in der ACL Rollen stehen wie z.B. [Einkauf] und [EinkaufSonderteile] ?
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:R5 Formelsprache: Schleifenersatz gesucht
« Antwort #3 am: 07.05.04 - 21:58:31 »
Nö. Ansonsten müsste man ein paar Rollen umbennen  ;D

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:R5 Formelsprache: Schleifenersatz gesucht
« Antwort #4 am: 07.05.04 - 22:02:47 »
Nö. Ansonsten müsste man ein paar Rollen umbennen  ;D

OK, dann teste ich mal.

Rollen umbennen würde ich jetzt weniger witzig finden (ist eine bestehende und sehr umfangreiche DB)  :P

Danke jedenfalls.  ;)
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:R5 Formelsprache: Schleifenersatz gesucht
« Antwort #5 am: 07.05.04 - 22:13:31 »
Hmm, da fehlt mir irgendwie schon der Ansatz.
_Profile := @GetProfileField("Profile_1"; "setup_Authors_1") ;
_Roles := @UserRoles


"Normal" - bei einer festen Rolle - hätte ich jetzt geschrieben:
!@IsMember ("[Rolle]";@UserRoles)

Ohne Script bin ich da echt aufgeschmissen  :-\

Seit ich mich mit LS angefreundet habe widerspricht mir die Formelsprache. Ich habe mich sogar schon ertappt, ein simples @Command([FileCloseWindow]) mit LS zu realisieren  ;D

Wie wäre hier der weitere Ansatz mit * ?
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:R5 Formelsprache: Schleifenersatz gesucht
« Antwort #6 am: 07.05.04 - 22:24:23 »
Ich kann es jetzt gerade nicht ausprobieren, aber check mal folgendes:
@If (_Roles *= _Profile; "Alles ist ok"; "Nix ist ok")

Sorry für die kurze (und evtl. unzureichende / falsche) Replik, aber ich habe gerade andere Igel zu kämmen ...

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:R5 Formelsprache: Schleifenersatz gesucht
« Antwort #7 am: 07.05.04 - 22:57:28 »
Perfekt !!  :) :) :)

_Profile := @GetProfileField("Profile_1"; "setup_Authors_1") ;
_Roles := @UserRoles;

@If (
_Roles *= _Profile;
@False;
@True
)


Vielen Dank, Bernhard, klappt 1A.

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Hernan Cortez

  • Gast
Re:R5 Formelsprache: Schleifenersatz gesucht
« Antwort #8 am: 08.05.04 - 01:31:02 »
 ;D

<joke>Was könnte aus euch werden ... (lassen wir das).  </joke>

Werd morgen direkt mal schauen ob sich das auf einen "dbLookup" mit Multi-Key anwenden läßt. Hab da so ein Problem. Ich ahnte, dass es irgendwie mit diesen für meine Logik schwer fassbaren Operatoren geht (vor Jahren mal mit gearbeitet und es "sitzt" nicht richtig).
Poste meine Ergebnisse (oder Fragen) als weiteren Anwendungsfall dann in den Thread.
Dank euch rosten meine zur Zeit nur zeitweilig abgerufenen Domino Kenntnisse nicht.  :)

Gruß Axel
« Letzte Änderung: 08.05.04 - 01:57:02 von El tio loco »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:R5 Formelsprache: Schleifenersatz gesucht
« Antwort #9 am: 08.05.04 - 10:26:07 »
Eine kleine Anmerkung noch:
Code
@If (
_Roles *= _Profile;
@False;
@True
)

In Hide-whens musst das nicht so kompliziert machen.
!(_Roles *= _Profile)
reicht vollkommen. Aus meiner Sicht liest sich das auch besser im Kontekt von hide-whens.

HTH,
Bernhard

Glombi

  • Gast
Re:R5 Formelsprache: Schleifenersatz gesucht
« Antwort #10 am: 08.05.04 - 10:53:29 »
Nur der Vollständigkeit halber:
Es ginge auch mit der Funktion @Keywords

Damit bekommt man die Schnittmenge zweier Listen.

Andreas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz