dynamisches Combofeld und meine Ratlosigkeit
Ich habe eine Tabelle Adressen, die ist verknüpft mit der Tabelle "Projektbeteiligte", dort gibt es ein Feld Auswahlfeld "Rolle" mit 7 Einträgen.
Ich will nun in einem dynamischen Combofeld alle Adressen anzeigen lassen, die als Rolle die Kennung mit dem numerischen Wert 1 haben.
Das ist mein Code: (select Adressen)[Projektbeteiligte.Rolle = 1]
Das Auswahlfeld tut prima, aber nicht vollständig. Ausgerechnet mein wichtigstes Pferd im Stall wird an der Stelle nicht geführt - ich finde nichts, warum das so ist und bin für jede Idee dankbar.
Ganz herzlich Frank
6 Antworten
-
Hallo Frank,
kann man zu einer Adresse nur einen Eintrag "Projektbeteiligte" wählen oder mehrere?
Leo
-
Hallo Leo,
TblProjektbeteiligte "verbindet" Adressen und Projekte (ich weiß nicht mehr, wie Ninox diese Konstruktion nennt)- Adresse 1 hat in Projekten 2,4,7 Rolle 3, Adresse 2 in Projekten 2 und 4 Rolle 5, Projekt 7 Rolle 1.
Wenn ich also Deine Frage richtig verstehe: Adresse kann mehrfach in Projektbeteiligte auftauchen. Und: Eine Adresse kann in Projektbeteiligte je Projekt mehrere Rollen annehmen (theoretisch, weil ich zu doof bin, eine Mehrfachverwendung pro Projekt zu untersagen)
Danke und herzlichen Gruß Frank
-
(select Adressen)[cnt(Projektbeteiligte[Rolle = 1])>0]
oder
unique(select Projektbeteiligte[Rolle = 1].Adressen)
Leo
-
Cool, danke! Variante 1 funktioniert. Darf ich nachfragen, warum mein Code nicht funktionieren konnte? Ganz herzlich Frank
-
Hallo Frank. Die Formel Projektbeteiligte.Rolle gibt ein Array aus unterschiedlichen Zahlen zurück. Somit sieht die Bedingung
[Projektbeteiligte.Rolle=1]
so aus :[1,1,2,1,2,2,2]=1 Damit kann Ninox nichts anfangen. Deswegen wird stattdesse gprüft ob in der Untertabelle Projektbeteiligte mindestens einen Datensatz mit der Rolle=1 gibt.
Leo
-
Danke, hilft mir zu verstehen! Ganz herzlich Frank
Content aside
- vor 2 JahrenZuletzt aktiv
- 6Antworten
- 230Ansichten