Je nach Abfrageergebniss Form nicht zu öffnen
Heiko Merz
Hallo,mal wieder etwas spezielles:
Wir haben am User eine Kommaseparierte Liste hinterlegt.
Die Liste enthält alle Forms, die der User nicht öffnen darf.
Z.B. ",139,133," heißt, der User darf Auftrag und Rechnung nicht öffnen.
Als SQL-Statment z.B. für Rechnung soll sowas in der Art verwendet werden:
Select Usercode from OUSR where OUSR.Code = "aktueller User" and OUSR.Listeneintrag like '%,133,%'
Was mir nun fehlt ist der Befehl zum Schliessen eines Forms, so in der Art :
Wenn SELECT ein Ergebnis ergibt (Sprich der User hat in seiner Liste den Eintrag), dann FormClose.
Ich hoffe das ist verständlich.
Hat jemand eine Idee ?
Gruß
Heiko
Sascha Balke
Hallo Heiko,warum arbeitest du nicht mit den SBO-Berechtigungen?
Heiko Merz
Das hat mehrere Gründe. Hauptgrund: User sollen Streckengeschäfte machen, sprich mit automatischer Anlage einer Streckenbestellung zum Streckenauftrag, dürfen aber die Bestellung selber dann nicht öffnen (Preise, etc.). D.h. sie brauchen volle Berechtigung im Hintergrund auf Bestellung, das Fenster selber sollen sie nicht öffnen dürfen.Weiter: Über den Quickfinder kann man die SBO Berechtigungen umgehen :-)
Gruß
Heiko
Manuel Marhold
Hi Heiko,das FormLoad-Event im beforeevent abfangen, bubbleevent = false und form.Close()
Das sollte schon alles sein.
Heiko Merz
Wunderbar, das klappt, danke.Eine Frage noch: Ich habe jetzt alle Daten in meiner CoCu-Regel zusammen.
Die aktuelle Formularnr (Auftrag = 139 z.B.) und den String der Formulare, die der aktuelle User nicht öffnen darf.
Die letzte Frage die ich jetzt noch habe: Welchen Code benutze ich, um folgendes zu erreichen:
Aktuelle FormularNr = 139 (--> Variable ist schon belegt mit ;139; )
Liste der Formulare, die der aktuelle User nicht sehen darf: ;139;133;142;
Abfrage sollte nun sein: Wenn ;139; ein Teil der Liste ist (was in diesem Fall ja so ist), dann Window.Close.
In SQL wäre es die like - Funktion, aber geht hier nicht.
Diese letzte Hilfe sollte ich noch haben, weiss jemand was ?
Gruß
Heiko
Manuel Marhold
Hi Heiko,versuche es mit CHARINDEX(',139,',OUSR.Listeneintrag)=0
http://msdn.microsoft.com/de-de/library/ms186323.aspx
Heiko Merz
OK, könnte ich noch machen.Habe es übers SQL-Statement gelöst, where ;139; Like '%;139;%'.
Wenn ein Wert bei der Abfrage rauskommt, dann kommt das Formular in der Liste vor.
Wenn nicht, dann gehts einfach weiter.
Danke trotzdem.
Gruß
Heiko
0
Please sign in to leave a comment.
Comments
0 comments