0

Ansicht mit Select filtern klappt nicht

Hallo zusammen,

ich versuche verzweifelt eine Ansicht nach Bearbeitern zu filtern. Das funktioniert aber weder so noch so....

 

Versuch 1:

let xBearb := Bearbeiter;

select 'Tabelle' where Bearbeiter = xBearb;

--> Es passiert gar nichts - nach wie vor bleiben alle Datensätze der Ansicht sichtbar.

2. Versuch:

let xBearb := text(Bearbeiter);

select 'Tabelle' where text(Bearbeiter) = xBearb;

--> es passiert ebenfalls gar nichts.

Was kann ich noch tun? Ich versteh es nicht....Der Code soll nach Änderung des Auswahlfeldes ausgeführt werden als als Trigger afterUpdate. Hat jemand eine Idee, woran es liegt? Lieben Dank im Voraus. 

7 Antworten

null
    • mirko3
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Ist es vielleicht ein Mehrfachauswahlfeld?

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

    Hallo Anke, hier drängt sich die Frage nach den Datentypen auf. Wenn es sich bei den Feldern 'Bearbeiter' um einfache Auswahlfelder handelt, müssten eigentlich beide Varianten funktionieren, einmal auf Basis der numerischen IDs der Auswahleinträge, das andere Mal mit deren Textwerten. 

    Deshalb frage ich mich gerade, ob es sich tatsächlich um "normale", einfache Auswahlfelder handelt, oder ob vielleicht ein Mehrfachauswahlfeld bzw. ein dynamisches Auswahlfeld beteiligt ist.

    • DBMSL
    • Anke_Blomer
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Planox.pro,

    Die Werte des Select-Feldes kommen aus der Tabelle Mitarbeiter. Dort habe ich ein Feld, das da heißt "Kürzel intern". Das ist ein normales Auswahlfeld, in dem 4 Werte stehen. Bernd, Anke und noch 2 andere. 

    In der To-Do Tabelle sind die Mitarbeiter per n:1 verknüpft. Der Wert von Bearbeiter wird über so eine Combobox angezeigt (alle anderen Spalten ausgeblendet, nur noch die Mitarbeiter sichtbar).  

    Kann es daran liegen? Danke erst mal, dass du dir die Zeit genommen hast, dich damit zu beschäftigen. 

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

      Anke Blömer Ich weiß jetzt nicht, ob Leos Hinweis dein Problem vielleicht schon löst. Ich selbst tue mich noch schwer, überhaupt die genaue Konstellation zu verstehen.

      Grundsätzlich: Eine Verknüpfung ist quasi ein eigenständiger Feldtyp und anders zu behandeln als bspw. ein Text- oder Auswahlfeld. Rückgabewert ist nicht der angezeigte Text, sondern die ninox-interne ID des verknüpften Datensatzes (z.B. "C3"). Man kann ihn deshalb nicht direkt mit dem Wert eines anderen Feldtyps (z. B. "Anke") vergleichen, sondern muss anhand der ID einen passenden Vergleichswert ermitteln.

      Wenn also, nur mal angenommen, das Auswahlfeld (+AF) und die Verknüpfung (+VK) 'Bearbeiter' hießen, dann könnte die Abfrage bspw. so (o. ä.) aussehen:

      let xBearb := text(BearbeiterAF);
      select TodoTabelle where BearbeiterVK.'Kürzel intern' = xBearb

      Das ist aber nur ein auf Spekulation beruhendes Beispiel, da mir wie gesagt nicht klar ist, was da genau an welcher Stelle abgefragt werden soll. Screenshots oder eine Kopie der DB könnten da helfen.

    • Leonid_Semik
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Anke,
    die Formel sollte nicht als Trigger beim Auswahlfeld liegen sondern als Formel bei der Ansicht.
    Leo

    • DBMSL
    • Anke_Blomer
    • vor 2 Jahren
    • Gemeldet - anzeigen

    aha! Dann werde ich die Funktion mal dahingehend umbauen. Und ja: sie ist nicht als Trigger eingebaut, sondern wird direkt in der Ansicht aufgerufen. Vielen Dank.

    • mirko3
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Ihr. Daß Ihr Euch nicht wundert, mein Beitrag hat zwei Tage gebraucht um anzukommen. Ist also von der Wirklichkeit überholt worden;-)