[gelöst] Daten für bestimmte Benutzer einschränken

17. Juli 2008 12:19

Hallo zusammen,

ich habe eine Tabelle Interessent mit einem Userkürzel als Spalte. Bestimmte User sollen nur die Datensätze sehe, wo ihr Kürzel enthalten ist. Wie setzt man das um?

Mein erster Ansatz war:

Code:
Interessent.SETCURRENTKEY(Verkäufercode);
Interessent.SETFILTER(Verkäufercode, FilterVerkäufer);

FormInteressent.SETTABLEVIEW(Interessent);
FormInteressent.RUN;


Jetzt kann aber der User den Filter jederzeit selbst wieder entfernen und sieht doch wieder alle Datensätze.

Wichtig ist an dieser Stelle, dass es nicht für alle User gilt und somit dieser Code noch in If-Abfragen eingebettet ist.

Schönen Gruß
Gregor
Zuletzt geändert von se3p am 17. Juli 2008 13:33, insgesamt 1-mal geändert.

17. Juli 2008 12:24

Damit der Benutzer nicht den Filter aufheben kann, musst du mit FILTERGROUP arbeiten. Such mal im Forum (nicht nur in diesem Unterforum) nach diesem Stichwort; dann hast du gleich Codebeispiele.

Deinen Filter würde ich in die Interessenten-Form (Funktion OnOpenForm) verfrachten. Dort arbeitest du direkt mit Rec und keine Record-Variablen.

17. Juli 2008 13:31

Super Tipp und vielen Dank. Es fuktioniert mit der FITERGROUP. Zusätzlich habe ich es jetzt auch in den Trigger OnOpenForm der Form eingebaut. Hier der aktuelle Code:

Code:
SETCURRENTKEY(Verkäufercode);
SETFILTER(Verkäufercode, FilterVerkäufer);
FILTERGROUP(2);


Ergebnis ist genau wie gewünscht. User sieht nur die gefilterten Datensätze und kann den Filter auch selbst nicht entfernen!

Für alle Interessierten habe ich dann einen weiteren Versuch gemacht:
Code:
SETCURRENTKEY(Verkäufercode);
SETFILTER(Verkäufercode, FilterVerkäufer);
FILTERGROUP(2);
SETFILTER(Statuscode, 'KUNDE');


Ergebnis ist, dass in der Form nach dem öffnen nur die Einträge mit dem gefilterten Verkäufercode und dem Status 'Kunde' zu sehen sind. Den ersten Filter kann der User wie gehabt nicht entfernen, den zweiten Filter jedoch schon.
Super Sache.

Gruß Gregor