0

"Lesbar wenn" steuern über dynamisches Auswahlfeld

Hallo zusammen, ich habe folgende Frage und bitte um Antworten und Tipps und gerne auch alternative bessere Lösungen:

Ich möchte über ein dynamisches Auswahlfeld steuern wer bestimmte Datensätze in einer Tabelle sehen darf.

Story:

Ein Projektleiter legt ein Projekt in der Projekt-Tabelle an. In diesem Projekt-Datensatz gibt es ein dynamisches Auswahlfeld welches auf die Mitarbeiter-Tabelle verweist. In diesem Auswahlfeld wählt der Projektleiter die Mitarbeiter aus die an diesem Projekt arbeiten sollen. Und logischerweise soll jeder Mitarbeiter auch nur die Projekt-Datensätze sehen für die er ausgewählt wurde. 

Ich gehe davon aus das ich in den Tabelleneigenschaften von Projekte das "Lesbar wenn" richtig einstellen muss. Aber ich kriegs nicht hin.

Danke für eure Hilfe!

10 Antworten

null
    • Basti.1
    • vor 2 Monaten
    • Gemeldet - anzeigen

    Niemand eine Idee?

    • Ninox-Professional
    • planoxpro
    • vor 2 Monaten
    • Gemeldet - anzeigen

    Hallo Basti, Ninox weiß erst mal nicht, wer genau da gerade vor dem Bildschirm sitzt, und kann nur den eingeloggten User identifizieren. Wenn jeder Mitarbeiter einen eigenen Ninox Account hat, dann würde ich in der Mitarbeiter-Tabelle ein Feld vom Typ 'Nutzer' erstellen und jedem Mitarbeiter seinen Account zuordnen. Dann kann man mit der Funktion user() den aktuellen Benutzer abfragen und mit der Auswahl abgleichen.

    • Basti.1
    • vor 2 Monaten
    • Gemeldet - anzeigen

    hi planox, 

    genauso soll es auch werden. Jeder MA wird auch ein Ninox-Nutzer. Das ensprechende Feld ist auch schon vorhanden. 
    Aber wie bekomme ich die unterschiedlichen "Berechtigungen" anhand des dynamischen Auswahlfeldes umgesetzt?

    Danke für deine Ideen!

    • Basti.1
    • vor 2 Monaten
    • Gemeldet - anzeigen

    Dann kann man mit der Funktion user() den aktuellen Benutzer abfragen und mit der Auswahl abgleichen.

    Genau das bekomme ich nicht hin. Keine Ahnung woran es liegt.

    • Basti.1
    • vor 2 Monaten
    • Gemeldet - anzeigen

    Ähm, wichtiger Hinweis: es ist ein dynamisches MEHRFACH-Auswahlfeld. Denn es sollen ja mehrere Mitarbeiter einem Projekt zugewiesen sein. 

    • Icarus_Ralf_Becker
    • vor 2 Monaten
    • Gemeldet - anzeigen

    Dann zeig uns doch mal bitte das Skript, dass du in der Tabellenoption "lesbar wenn" reingeschrieben hast, um den Mutterabgleich zu machen.

      • Icarus_Ralf_Becker
      • vor 2 Monaten
      • Gemeldet - anzeigen

      Mitarbeiterabgleich - es lebe die Autokorrektur

    • Basti.1
    • vor 2 Monaten
    • Gemeldet - anzeigen
    let myNr := this.number(Nr);
    chosen('Zugeordnete Mitarbeiter', myNr)
    

    habe nochmal neu rumprobiert was ich so gefunden habe und stehe aktuell nun hier. 

      • Ninox-Professional
      • planoxpro
      • vor 2 Monaten
      • Gemeldet - anzeigen

       

      Wenn 'Zugeordnete Mitarbeiter' ein dynamisches Mehrfachauswahlfeld ist, das auf die Tabelle 'Mitarbeiter' zugreift, dann enthält es auch die DatensatznNummern der Mitarbeiter-Tabelle. Man müsste also die Nr. des aktuellen Mitarbeiters ermitteln und abgleichen:

      let myMA := first(select Mitarbeiter where Nutzer = user()).number(Nr);
      chosen('Zugeordnete Mitarbeiter', myMA)

      Wobei man wohl auch den Ersteller des Datensatzes als berechtigt mit einbeziehen müsste, damit dieser die Zuordnungen überhaupt vornehmen und ggf. ändern kann:

      'Erstellt von' = user() or chosen('Zugeordnete Mitarbeiter', myMA)

      Zusätzlich könnte man auch noch User mit Admin-Status einbeziehen:

      userIsAdmin() or 'Erstellt von' = user() or chosen('Zugeordnete Mitarbeiter', myMA)
    • Basti.1
    • vor 2 Monaten
    • Gemeldet - anzeigen

    es funktioniert. Vielen Dank 
    Und ich habe wieder was dazu gelernt! Super!

Content aside

  • Status Answered
  • vor 2 MonatenZuletzt aktiv
  • 10Antworten
  • 109Ansichten
  • 3 Folge bereits