Report - Filter auf USERID

Hallo, auf einen Report den mehrere Leute benutzen möchte ich für einen ausgewählten Personenbereich, noch zusätzliche Informationen anzeigen, die für alle anderen aber ausgeblendet bleiben sollen. Wie kann ich vorgehen!? Danke für alle Infos.

Die Standardvariante wäre, mehrere Sections anzulegen und im OnPreSection Trigger zu entscheiden, welche der aktuelle User sehen soll, also CurrReport.SHOWOUTPUT(USERID = …). Dieser erste Ansatz hat natürlich einige Nachteile, wie z.B. die hardkodierten Usernamen, oder daß die Usernamen mehrfach auftauchen, nämlich in jeder Section (läßt sich durch eine Funktion lösen, die überprüft, ob der Benutzer zu den privilegierten gehört oder nicht). Die Flexibilität und Wartbarkeit ist natürlich ebenfalls unter aller *** [;)] Eine Variante wäre, in der Benutzer Einrichtung Tabelle eine neue Spalte einzuführen, mit der die Anzeige gesteuert wird. Das ist insbesondere dann von Vorteil, wenn es sich um einen größeren Personenkreis handelt und/oder die Personen öfter wechseln. Der Nachteil ist dabei, daß man für eine möglicherwise sehr spezielle und isolierte Anforderung eine eigene Spalte anlegt, die dann natürlich auch gepflegt werden muß. Schlußendlich kann man das Ganze an eine Rolle binden, indem man in der Zuordnungtabelle Benutzer/Rolle nachsieht, ob der Benutzer zu einer besonders privilegierten Rolle gehört. Das Spiel beginnt dann wieder von vorne, nur halt mit Rollen statt Benutzern (hardcoded, Wartung etc.), und führt uns schlußendlich vielleicht zum Konzept einer Meta-Rolle [:D] In Attain gibt es anscheinend ein weiter entwickeltes Rollenkonzept, nur leider kenne ich mich mit Attain nicht aus [:p].

Hi,

quote:


Originally posted by xorph
In Attain gibt es anscheinend ein weiter entwickeltes Rollenkonzept, nur leider kenne ich mich mit Attain nicht aus [:p].


Attain 3.01b Wir haben einige Menü-Auswahlen über Rollen gesteuert. (z.B. P/L - Übersicht) In OnOpen wird eine Dummy-Rolle abgefragt, die nur für diesen Zweck angelegt wurde. Ist der User ‘Member of’, dann werden die Auswahlpunkte visible=true, wenn nicht bleiben sie visible=false. Da ist dann nur die Rolle zu pflegen. Das sollte doch in einem Report auch möglich sein. Der Beispielcode ist die ‘stille’ Variante. Das bedeutet, es wird keine Warnung ausgegeben, wenn der User nicht Mitglied der Rolle ist.


**OnOpen-Trigger**
Rolle_:='CONTROL';
"i.O._":="%RollenPrüfen".Prüfen(Rolle_);
IF "i.O._"=FALSE THEN BEGIN
  // MESSAGE(Text001);  // Hier könnte Hinweis kommen!
END ELSE BEGIN
  CurrForm.Controll.VISIBLE:=TRUE;
END;

**CU "%RollenPrüfen".Prüfen**
"!Mitglied von".SETCURRENTKEY("!Mitglied von"."User ID","!Mitglied von"."Role ID");
ok_:=FALSE;
"!Mitglied von".SETRANGE("!Mitglied von"."User ID",USERID);
"!Mitglied von".SETRANGE("!Mitglied von"."Role ID",Rolle_);
IF "!Mitglied von".FIND('-') THEN BEGIN
   ok_:=TRUE;
END ELSE BEGIN
  // MESSAGE(Text001);  // Hier könnte Hinweis kommen!
END;

bye Andre

Andre, wenn ich’s richtig verstehe, ist das nichts anderes als eine Abfrage auf die “Mitglied von” - Tabelle und würde in NF 2.60 genauso funktionieren, richtig [?] Irgendwie ist aber hier im Forum immer die Rede von einem anscheinend speziellen Rollenkonzept in Attain, oder interpretiere ich da nur was hinein? Dann würde mich bloß noch interessieren, was die lustigen ‘%’ und ‘!’ am Beginn der Tabellen-/CU- Namen bedeuten sollen… [:D]

Im Prinzip ist die Lösung oben schon geschrieben worden von “Heinz Herbeck”. Man erstellt ein neues Feld in der Einrichtung (z.B. Debitoren & Verkauf-Einrichtung) wenn es um einen VK-Bericht geht. In diesem Feld hinterlegt man die Gruppe die ein Benutzer haben muss damit die erweiterten Informationen in dem/den Bericht(en) angezeigt werden. Diese Lösung ist auch “dynamisch” da die Gruppe NICHT hardcoded hinterlegt werden muss. Das einzige was dann zu pflegen ist 1x (im normalfall wirklich nur EINMAL) das einrichten einer speziellen Gruppe und diese in der Einrichtung hinterlegen UND Pflegen der Benutzerkonten die dieser Gruppen (nicht) angehören sollen. Ben

Hallo Heinz

quote:


Originally posted by xorph
Andre, wenn ich’s richtig verstehe, ist das nichts anderes als eine Abfrage auf die “Mitglied von” - Tabelle und würde in NF 2.60 genauso funktionieren, richtig [?] Irgendwie ist aber hier im Forum immer die Rede von einem anscheinend speziellen Rollenkonzept in Attain, oder interpretiere ich da nur was hinein? …


Hm. Das frage ich mich auch andauernd. Wir haben keine andere Möglichkeit gefunden, bestimmte Einstellungen in Menüs und Fenstern anzupassen, ohne 1. neue Fenster / Menüs zu ‘bauen’ und 2. in die Rechtevergabe für Fenster einzusteigen.

quote:


Originally posted by xorph
… Dann würde mich bloß noch interessieren, was die lustigen ‘%’ und ‘!’ am Beginn der Tabellen-/CU- Namen bedeuten sollen… [:D]


“The good old times…” Wir arbeiten seit 1994 mit Navision, damals ‘Blau’. Zu dieser Zeit wurde den Programmierern eingepaukt, im Coding ein ‘!’ am Beginn jeder Record-Variable (ein ‘_’ bei Text-Variablen) zu setzen. Beim ‘%’ bin ich mir nicht sicher, ich habe die Codeunit nicht geschrieben. Vielleicht hatte der Mitarbeiter einen schlechten Tag [:p]. bye Andre