Dynamisches Auswahlfeld: Auswahl des Datensatzes anhand einer if else definition aus einem anderen Feld
Hallo liebes Forum,
wieder mal eine Frage zu den dynamischen Auswahlfeldern, die mir noch etwas schleierhaft sind:
Ich habe ein Nummerfeld JAHR und ein dynamisches Auswahlfeld ZEITRAUM, das mit einer Tabelle ZEITRAUM (DYN) verknüpft ist. Nun möchte ich, dass wenn in dem Nummernfeld z.B. die Jahreszahl 1740 eigegeben wird, im Auswahlfeld ZEITRAUM automatisch der entsprechende Datensatz aus der dazugehörigen Tabelle mit dem Inhalt "1700-1750" (bei mir Datensatznummer 9) ausgewählt wird. Aber ich schaffe es nicht, diesen Datensatz anzusprechen und das dynamische Auswahlfeld automatisch auf diesen Datensatz zu setzen, so dass dieser im Feld ausgewählt ist.
Hat jemand eine Idee dazu? Wäre super!
Viele Grüße
11 Antworten
-
Hallo af,
---
let me:=this;
let myNum:=first(select('ZEITRAUM (DYN)'[number(first(split(ZEITRAUMFELD,"-")))<me.JAHR and number(last(split(ZEITRAUMFELD,"-")))>me.JAHR]).number(Nr);
me.ZEITRAUM:=myNum
---
Leo
-
Hallo Leo,
ganz lieben Dank für die schnelle Antwort. Ich befürchte aber, das ist nicht ganz das, was ich brauche. Anbei ein Foto meiner Tabelle "Zeitraum (dyn)". Aus dieser soll in meinem Beispiel das dynamische Auswahlfeld in meiner Haupttabelle DB den Eintrag Nr. 9 Auswählen, damit das ganze dann wie auf dem zweiten Bild aussieht (das grün markierte Feld ist das dynamische Auswahlfeld).
Viele GrüßeAurelio
-
Hallo Aurelio,
Die Formel macht genau das, was du möchtest. Man splittert den Text 1700-1799 auf zwei Zahlen und vergleich dann. Wird den Datensatz gefunden, wird die Nummer (9) genommen und damit das Auswahlfld gesteuert.
Allerdigs wird es ein Problem geben mit Felder unbekannt und vor 1700. Hier muss man zusätzlich etwas schreiben.
-
Danke für die Erklärung! Verstehe, allerdings gibt er bei mir eine Fehlermeldung aus: ID erwartet in Zeile 2, Spalte 24.
Das wäre dann die Auswahl der Tabelle. Der Name ist aber korrekt. -
Was ist die Spalte Wert bei dir? Text oder ein Auswahlfeld?
-
das ist ein einfaches Textfeld
-
Lass testweise mal die öffnende Klammer nach dem "select" weg. Also: "let myNum:=first(select 'ZEITRAUM ..."
-
super, danke für den Hinweis, das klappt.
Probelme gibt es aber noch, wie Leo schon sagte, bei den Feldern mit Text (also: vor 1700, oder 2000-heute). Da kommt es zu keiner Auswahl.
-
Habe probiert die beiden Probleme mit dem Text im Wert-Feld zu lösen und dachte, man könnte es mit < 1700 bzw. dann noch >=2000 lösen, aber so wie ich es geschrieben habe, klappt es nicht.
let me := this;
let myNum := first((select 'Zeitraum (dyn)')[number(first(split(Wert, "-"))) <= me.Jahr and number(last(split(Wert, "-"))) >= me.Jahr]).number(Nr);
if number(Jahr) < 1700 then
select 'Zeitraum (dyn)' where number(Nr) = 8
else
me.(Zeitraum := myNum)
end
Hat jemand noch eine Idee?
-
Hallo Aurelio,
---
let me := this;
let myNum := if me.Jahr<1700 then 8 else if me.Jahr>=2000 then 2 else
first((select 'Zeitraum (dyn)')[number(first(split(Wert, "-"))) <= me.Jahr and number(last(split(Wert, "-"))) >= me.Jahr]).number(Nr)
end
end;
me.ZEITRAUM:=myNum
---
Leo
-
Hallo Leo,
absolut genial! Funktioniert einwandfrei! Ganz herzlichen Dank für die Hilfe!!
Viele Grüße
Aurelio
Content aside
- vor 3 JahrenZuletzt aktiv
- 11Antworten
- 1244Ansichten