Auswahlfelder synchronisieren um Ansicht zu steuern
Hallo Zusammen,
ich habe zwei Tabellen (A und B) in denen genau die gleichen Auswahlfelder sind. Tabelle B ist eher ein "Dashboard" zur Ansicht. Hier möchte ich ein Auswahlfeld haben, mit dem ich steuern kann, welche Karteireiter mir in Tabelle B angezeigt werden. Die Karteireiter in Tabelle B beziehen sich unter "nur anzeigen wenn" auf das Auswahlfeld hier. Mit "Nach Änderung folgenden Script ausführen" würde ich nun gerne, dass das Auswahlfeld in Tabelle A das Auswahlfeld in Tabelle B ändert.
Kurz zur Erläuterung warum das so sein soll: Ich möchte sowohl über die Ansicht in Tabelle A, als auch über den direkten Zugriff über Tabelle B die Ansicht beeinflussen können.
Ich habe schon einige Varianten ausprobiert, z.B.:
let me:= this;
let myA := Auswahl1
let myB := (select TabelleB where me=Bedingung).Auswahl2
switch myA do
case1: 1
myB := 1
case 2:
myB :=2
usw.
Hier sagt Ninox mir, dass für wenn und dann verschiedene Datentypen gewählt wurden. Warum auch immer.
Da es in Tabelle B ja ggf. um mehrere Datensätze geht, habe ich es auch schon mit einer for-Schleife probiert: Hier sagt mir Ninox das gleiche. Habt ihr eine Idee?
Liebe Grüße und schon mal danke!
Stephan
12 Antworten
-
Hallo Stephan, ich bin mir nicht 100-prozentig sicher, ob ich die Aufgabenstellung richtig verstanden habe, aber versuch's doch mal nach diesem Schema:
let me := this;
(select TabelleB where FELD = me.FELD).(Auswahl2 := me.Auswahl1)
-
leider nein...
Am Ende sollen die beiden Auswahlfelder einfach nur den gleichen Wert anzeigen, mehr nicht, wobei das eine Auswahlfeld in Tabelle A ist und das andere Auswahlfeld in Tabelle B.let me := this;
(select Sichter_Kompetenzmerkmale where Sichter = me.'Sichter-Name').('Übungen' := me.'Übungen')"Übungen" sind die besagten Auswahlfelder (heißen beide gleich).
-
Hm, sind es vielleicht MEHRFACHauswahlfelder?
-
Nein, einfache Auswahl.
-
... und bei beiden Auswahlfeldern haben die Optionen jeweils die gleiche Id?
-
ganz genau! Es passiert einfach gar nichts...
-
Hm, kannst Du ausschließen, dass es nicht an der where Bedingung liegt - das heißt der select-Befehl findet schlicht und ergreifend keine Datensätze, in denen der Inhalt des Feldes 'Sichter' exakt(!) dem Inhalt des Feldes me.'Sichter Name' entspricht?
Taste Dich doch mal ran - setze in Deinem Dashboard ein Funktionsfeld mit
let me := this;
concat((select Sichter_Kompetenzmerkmale where Sichter = me.'Sichter-Name').<irgendein_Feld_aus_'Sichter_Kompetenzmerkmale'>)
-
Und die Strings in 'Sichter' und 'Sichter-Name' stimmen auch exakt überein? Um Unterschiede bei Groß-/Kleinschreibweise auszuschließen, vielleicht mal so probieren:
let me := this;
(select Sichter_Kompetenzmerkmale where lower(Sichter) = me.lower('Sichter-Name')).('Übungen' := me.'Übungen')
-
... Oder was Torsten vorschlägt. ;) (Hatte ich noch nicht gesehen.)
-
Oder vielleicht mal mit eckigen Klammern statt ohne "where" (nur, um alles ausprobiert zu haben):
let me := this;
(select Sichter_Kompetenzmerkmale[lower(Sichter) = me.lower('Sichter-Name')]).('Übungen' := me.'Übungen')
-
"statt ohne" ... Puh, bitte eines der Worte streichen.
-
Es klaptt! Ihr habt mich mal wieder ans "debuggen" erinnert. Es war eben nicht exakt das Feld in der "Select"-Auswahl obwohl ich mir so sicher war! Ich danke euch! Das hat mir sehr geholfen!!!
Content aside
- vor 4 JahrenZuletzt aktiv
- 12Antworten
- 843Ansichten