Subformlink filter - Benutzer-> Table (CC)

24. August 2011 08:37

Guten Morgen,

ich habe diesen Sommer mit meiner Lehre begonnen und bekam die Aufgabe: "[...] erstell in NAV eine Form, auf der wir den User auswählen können - anschließend sollen in den unteren beiden Subformen, seine zugeteilten Rollen und Rechte angezeigt werden.[...]"

Grund: Diese Form soll es vereinfachen, die Rechte der User schneller zu ändern oder zu enziehen.

Hört sich schon einmal ganz simpel an - aber leider komme ich an der jetzigen Stelle nicht mehr weiter.
Ein Markel ist es leider auch, das ich vor der Ausbildung nie mit NAV irgendeinen Kontakt hatte (nur VB kommt dem evtl nahe).
Somit bin ich ein - sagen wir mal - "N00b" in der NAV Programmierung.

Derzeit habe ich eine Mainform (SourceTable: User Setup), auf der ein TAB-Controll liegt, auf diesem Controll liegt eine Textbox -diese verweist auf die Spalte der Maintable "SourceExpr=User ID". Soweit so gut, ich kann die User mittels Pfeiltasten auswählen. (es gäbe zwar auch die Möglichkeit, den Button am ende des Textfeldes zu drücken, aber er benötigt massiv viel Zeit bevor er eine Tabelle erstellt hat mit sämtlichen Usern- daher bleibt diese Möglichkeit leider außenvor).

Als nächster Step, wäre nach dem Auswählen die passige Table anzuzeigen im Sub.
Dafür habe ich eine Subform erstellt (SubFormID=User Roles List) die nur eine Tabelle enthält und den Größen für das Subformfeld auf der Mainform entspricht. ( Tabelle zeigt auf: "Windows Access Control" in dieser wird die benötigte "Rollen ID", "Mandantenname", "Rollenname" und wichtig "Login ID" angezeigt.)

Im Gedanken: "Der User wird augewählt (User ID = ausgewählter User) - jetzt müsste die Subform in der Tabelle nach dem User (Login ID) filtern um deren Rollen korrekt wiederzugeben.

Als Info: User ID beinhaltet nur den Benutzernamen z.B User ID=TESTNAME - in der Login ID wird aber der komplette Login in aufgeführt - so wäre dies Login ID=FIRMA/TESTNAME - ich muss also in der Login ID den einzelnen Benutzer herrausfiltern (in der Suche funktioniert dies primar mit '*'

Ich habe schon einiges Ausprobiert um einen Filter mittels "SubFormLink" zu realisieren. Einen Erfolg hatte ich schon - aber diese Suche war nicht dynamisch, sondern ein fester Wert - SubFormLink= Login ID=FILTER(*TESTNAME) - das Ergebnis wäre zwar richtig -aber leider würde die Userauswahl keinen Sinn mehrh aben, weil jeder Benutzer immer nur TESTNAME's Rollen anzeigt.

Meine Überlegung: "Login ID=FILTER(*"test")" - test wäre in diesem Fall eine Global C/AL die nur als Platzhalter bzw weitergabe für die User Auswahl dient.

Leider alles ohne Erfolg :(
Mein Betreuer wollt mir zwar helfen, aber eine wirkliche Lösung hatte selbst er nicht. Ich bekomme meist immer nur die Antwort "Such mal im Internet, oder Büchern etc." - mein anderer Betreuer meinte letztens "Du willst doch Programmierer werden - daher musst du schon sowas wissen.." :D Ja super - ich würd es gern lösen, aber ich besitze keinerlei Grundkenntnisse in NAV :-( Trau mich einmählich schon gar nicht mehr zu fragen, weil die Antworten meist die selben sind.

Weil ich glaub ich nerv meine Betreuer schon einmählich :-)

Hier im Forum habe ich schon einige Themen gefunden, aber leider nicht das richtige.


Ich würde mich sehr über eine Antwort freuen, es muss keine komplett Lösung sein - sondern ich möchte eher verstehen wie ich es in Zukunft ohne Hilfe schaffen könnte. Dazu benötige ich aber auch erstmal ein Grundstoff an Wissen.

(Sorry für den langen Text)
Mit freundlichen Gruß,

Arne aka. Jixaw

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 09:25

Hallo Jixaw,

zunächst herzlich willkommen im Forum.

Was du programmieren sollst, gibt es schon direkt von MS. siehe hier.

Aber du kannst dich dennoch beim Programmieren austoben, denn die Objekte sind für eine alte Version von NAV, und enthalten Zugriffe auf Felder, die es heute nicht mehr gibt :wink: . Außerdem funktioniert das ganze nur mit Datenbankanmeldungen. Für Windowsanmeldungen musst du das ganze noch überarbeiten.

Viel Spaß, Fiddi

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 10:04

Hallo fidi,

schon einmal herzlichen Dank für deine Antwort :)

Habe mir das Programm welches gepostet hast einmal auf einer Test Datenbank angesehen.
Leider entspricht dies nicht meiner Vorstellung. Es ist sicher ganz gut dafür um Rollen den jeweiligen Rechten zu zu ordnen - aber leider nicht das was gefordert ist.

Dieses so umzubauen bis es den Wünschen entspricht wäre glaub mehr arbeit als das jetzige ^^
Danke dir aber trotzdem sehr :)

Weil meine Frage war ja inprinzip die - wie schaffe ich es das die Subform nach dem die User ID gewählt wurde, die Rollen etc für den gewählten User anzuzeigen. Und ob ein Filter im SubFormLink überhaupt das richtige ist.

(PS: hatte oben vergessen, die Globals C/AL "test" welche ich einbringen wollte, besitzt im "OnAfterRecord()" noch: test := "User ID";
leider weiß ich nicht ob diese Variable jetzt wirklich den Ausgewählten User zeigt)

Gruß,
Jixaw

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 10:17

Weil meine Frage war ja inprinzip die - wie schaffe ich es das die Subform nach dem die User ID gewählt wurde, die Rollen etc für den gewählten User anzuzeigen. Und ob ein Filter im SubFormLink überhaupt das richtige ist.


Schau dir Mal die Form "User Rights Setup", die tut unter anderem das was du willst.

Gruß, Fiddi

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 10:33

@fiddi: was ist das denn für eine Form? ich finde die bei unsn nicht.

@jixaw: es gibt in NAV soviele Forms mit Subforms (z. B. Aufträge). Schau Dir mal an wie dieaufgebaut sind und schau die besonders die Properties an.

Volker

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 10:37

@vsnase: Die ist in dem Download aus meinem Link!

Gruß, Fiddi

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 10:50

Hallo,

konnte leider keine Form "User Rights Setup" finden.

Aber habe hier noch einmal zum Verständnis ein Bild wie meine Form zurzeit ausschaut.
Im oberen Feld wird der User eingetrgen, bei dem Änderungen vorgenommen werden sollen. "TESTNAME" steh in diesem Fall für den gewählten Benutzernamen.

Die untere Subform enthält leider keine User ID sondern nur die Login ID somit muss ich den Benutzernamen herraus filtern da ansonsten FIRMA/ davor steht - bei SubFormLink: Login ID=FILTER(*test) sucht er schon alle einträge mit test - aber er soll ja den oben gewählten User suchen ...

http://img4.fotos-hochladen.net/uploads/testrf81wcp7es.jpg

Gruß,
jixaw

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 11:00

Sorry,Sorry:

wenn man einen Link kopiert sollte man schon den richtigen kopieren :oops: "User Rights Setup" gibt es hier

Dann funktioniert auch meine Beschreibung :-?

Gruß, Fiddi

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 11:06

@ vsnase:

ja ich hatte mir vor diesem Foreneintrag schon angesehen, wie es in der Artikelkarte, Aufträge oder Anlagen gelöst wurde.
Das versteh ich auch alles soweit, und zwar benötigt die Spalte aus der Sub ein "Partner" aus der Mainform. Aber meisten sind es nur Nummern.
So wird es ziemlich simpel mit "Document No.=FIELD(No.)" gelöst.

Wäre ja alles kein Problem, wenn mein Benutzername dem Benutzernamen aus der Sub entsprechen würde - leider hat es einen Harken.
Die Login ID schreibt vor dem Benutzer noch die Domain...

Hilfe brauche ich eigentlich nur dabei, wie ich es schaffe das er aus der Propertie "SubFormLink" mein Befehl: Login ID=FILTER(*"test")
umsetzen würde. Aber er erkennt die Variable test an dieser stelle nicht...

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 11:11

Das mit dem Domänennamen ist noch sehr lustig. Als ich das User Rights bei uns für Win-Anmeldung umstellt habe, konnte ich feststellen, das er das nicht immer macht. :evil:

Gruß, Fiddi

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 11:21

Nur damit ich nicht ganz dumm da steh: Auf welche Tabellen greift Ihr den zu? Ich hätte jetzt 2000000053 und 2000000054 genommen und die über die SID verknüpft.

Volker

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 12:44

Hallo,

wäre die Variable zuzuweisen (test := "User ID") im OnAfterRecord() auf der Form selbst überhaupt die richtige Stelle ?
Ich komm zu keiner Lösung für meine Frage. SubFormLink ist "Login ID=FILTER(*"test")" eingetragen - Habe das "test :="User ID" vorhin auch dem
"OnAfterInput" der Textbox hinzugefügt, auch ohne erfolg.

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 12:57

Kann es sein, das die Usernamen groß geschrieben wurden, und deshalb '*test* als Filter nicht funktioniert?

Gruß, Fiddi

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 13:00

jixaw hat geschrieben:Ich komm zu keiner Lösung für meine Frage. SubFormLink ist "Login ID=FILTER(*"test")" eingetragen - Habe das "test :="User ID" vorhin auch dem
"OnAfterInput" der Textbox hinzugefügt, auch ohne erfolg.

Im Subformlink kann man leider nur einen konstanten Wert, einen festen Filter oder den Inhalt eines Feldes übergeben, keinen variablen Filter. Das kann man aber mit einer Funktion regeln.

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 13:04

@ fidi - stimmt .. in der Spalte User ID wird groß geschrieben - ich teste mal ob eine großgeschriebene Variable funktioniert

@McClane - Wenn die logik mit den Variablen nich zur verfügung steht, wie mache ich das denn mit dieser "funktion".
Wie gesagt, kenn mich leider überhaupt noch nicht aus :( Oder ist das ein Eintrag ins C/AL ?

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 13:15

jixaw hat geschrieben:@ fidi - stimmt .. in der Spalte User ID wird groß geschrieben - ich teste mal ob eine großgeschriebene Variable funktioniert


Hatte es mit Großschreibung noch einmal geändert - aber auch weiterhin ohne Erfolg.

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 13:38

Schau dir doch bitte mal "User Rights Setup" von MS von hier an. (mein erster Link vorhin war falsch).
Dann hast du erst einmal ein Beispiel für die DB-Anmeldung. Für die Win-Anmeldungs- Version kopierst du dir dann die nicht passenden Objekte und änderst Sie passend.

Gruß, Fiddi

Re: Subformlink filter - Benutzer-> Table (CC)

24. August 2011 15:31

Vom Erstenblick scheint die Applikation das Richtige zu sein.
Leider komme ich nicht in den Design Modus um Änderungen vorzunehmen - aber werd diese Morgen mal ins Test System einspielen, habe es derzeit nur in der TestVorlage "Cognus AG" versucht.

Aber Danke schon einmal :) auch wenn meine Frage nicht wirklich beantwortet wurde :P weil das würde mich dennoch noch interessieren...

Grüße,
Jixaw