0

Auswahl dynamisch abfragen

Hallo

 

die neue Funktion "Auswahl dynamisch" ist eine Bereicherung und sehnüchtig erwartet. Allerdings weiss ich nicht, wie ich die Auswahl abrufen soll.

Ich habe zB eine Tabelle Mitarbeiter, und in der Tabelle Dahboard vorher ein Verknüfungsfeld, wo man die Mitarbeiter auswählen kann.

Wenn ich jetzt eine Ansicht der Daten des Mitarbeiters darstellen will, schreibe ich nur let me.this; select Mitarbeiter where Mitarbeitername=me.Mitarbeitername.

Auswhalfelder habe ich bis jetzt per zugeordneter Nummer ausgewählt. Aber wie rufe ich jetzt die Auswahl aus einem dynamischen Auswahlfeld ab?

BTW: man kann ein Verknüpfungsfeld jetzt auch als Combo, Switch usw darstellen, allerdings reagiert das Feld bei einer der neuen Ansichten nicht darauf, dass man in "Name des dynamischen Feld" nur eine Spalte herausfiltern möchte. Würde das funktionieren, wäre sie dynamische AUswahl fast überflüssig. Bug?

Lg

Arsène

10 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Arsène, dynamisches Auswahlfeld anlegen und bei "Dynamic Values" eintragen: select Mitarbeiter. "OK" und "Änderungen sichern". Dann die Optionen des Auswahlfeldes erneut öffnen und bei "Name des dynamischen Wertes" eintragen: Mitarbeitername.

     

    Der Code für die Ansicht wäre dann:

     

    let myM := Mitarbeitername;
    select Mitarbeiter where number(Nr) = myM

    • RMS Immobilière
    • Arsene_Nickels
    • vor 3 Jahren
    • Gemeldet - anzeigen

    funktioniert bei mir nicht. schon in der ersten Zeile bekomme ich dann eine Fehlermeldung, dass die Tabellenspalte nicht gefunden wurde (was ja auch stimmt, es ist ja auch keine Tabellenspalte)

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    'Mitarbeitername' steht für die Bezeichnung des dynamischen Auswahlfeldes. Du hattest es oben ja selbst so genannt ("me.Mitarbeitername"). Keine Ahnung, wie das jetzt bei dir heißt.

    • RMS Immobilière
    • Arsene_Nickels
    • vor 3 Jahren
    • Gemeldet - anzeigen

    yep, nachdem ich alles auf französisch habe, heisst es natürlich anders. Und ich jongliere hier mit mehreren Tabellen herum.

    Konkret habe ich eine Tabelle 'Apporteurs' mit u.a. einer Spalte 'Nom + Prénom'.

    So, jetzt lege ich in der Tabelle 'Dashboard' ein dynamisches Auswahlfeld an, das ich "Choix" getauft habe, setze unter dynamic Values "select Apporteurs" ein und unter Name des dynamischen Wertes 'Nom+Prénom'. Das Auswahlfeld funktioniert perfekt.

    Jetzt möchte ich eine Ansicht von den Konten, die in der Tabelle "Comptes apporteur' zusammengefasst sind. Dort heisst die Tabellenspalte mit den Namen schlicht 'Apporteur'

    Im Moment habe ich ein Verknüfungsfeld mit der Tabelle Apporteurs, wo auch nur der Name (Nom+Prénom) angezeigt wird. Also lautet meine Formel:

    let me := this;
    select 'Compte apporteur' where Apporteur = me.Apporteurs.'Nom + Prénom'.

    Wenn ich jetzt das Verknüpfungsfeld ersetzen möchte durch die dynamische Auswahl und ich schreibe letmyM:= 'Nom + Prénom', kriege ich eine Fehlermeldung, weil die Bezeichnung ja nur in der Tabelle Apporteurs besteht und nicht in meiner Tabelle Dashboard.

    Irgendwie stehe ich auf dem Schlauch

    • Icarus_Ralf_Becker
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Sorry Copytexter, aber die Erklärung und der adaptierte Code funktionieren bei mir auch nicht.

    Wenn ich ein dyn. Auswahlfeld "Mitarbeitername" in der Tabelle "Dashboard" anlege, und in den Values "select Mitarbeiter" eintrage, dann habe bei den Namen nur die Felder der Tabelle "Mitarbeiter " zur Verfügung und eine Übergabe "let myM := Mitarbeitername;" kann gar nicht funktionieren, weil er das Feld gar nicht erkennt.

    Ich scheitere derzeit leider auch daran, dass mein dynamisches Auswahlfeld zwar die korrekten Werte zur Auswahl anzeigt, ich die aber nicht abgefragt bekomme, sondern nur die ID der Auswahl. Das nützt ja aber keinem was.

    Kann jemand ein umfängliches und getestetes Beispiel bereitstellen? Danke.

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Noch mal: Das "let myM := Mitarbeitername" bezog sich auf ein dynamisches Auswahlfeld namens 'Mitarbeitername' in der Tabelle 'Dashboard'. Rückgabewert ist die Nummer des Datensatzes der Tabelle 'Mitarbeiter'. Man kann das Auswahlfeld der Klarheit wegen auch 'Mitarbeiterauswahl' nennen, dann heißt die erste Zeile "let myM := Mitarbeiterauswahl". Das Ergebnis ist dasselbe.

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    NX_DynAF_Ansicht01

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    PS: Im Gegnsatz zu normalen Auswahlfeldern bekommt man bei dynamischen nicht die numerische ID des Eintrags in der Liste zurück, sondern die Nummer des Datensatzes in der Tabelle, aus der die anzuzeigenden Einträge ausgelesen werden.

    • RMS Immobilière
    • Arsene_Nickels
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Rückgabewert ist bei mir ein leeres Feld.

    • RMS Immobilière
    • Arsene_Nickels
    • vor 3 Jahren
    • Gemeldet - anzeigen

    PS: Im Gegnsatz zu normalen Auswahlfeldern bekommt man bei dynamischen nicht die numerische ID des Eintrags in der Liste zurück, sondern die Nummer des Datensatzes in der Tabelle, aus der die anzuzeigenden Einträge ausgelesen werden.

    Das war der entscheidende Hinweis. Jetzt habe ich es auch kapiert ;-) und nachden ich mit 3 verschiedenen Tabellen jongliere, habe ich die Formel entsprechend angepasst. Jetzt funktioniert es

    let me := this;
    let my := (select Apporteurs)[number(Nr) = me.Choix].'Nom + Prénom';
    select 'Compte apporteur' where Apporteur = my

    Wobei das dynamische Auswahlfeld in der Tabelle Dashboard "Choix" heisst

    Danke Copytexter. Ich verstehe ganz schnell, man muss mir nur lange genug erklären ;-))

    schönen Sonntag