0

Auswahlfeld und case .. switch

In einem Auswahlfeld werden die Wassergefährdungsklassen ausgewählt ("1", "2", "3", "n.w.g."). In einem benachbarten Berechnungsfeld soll der dazugehörige Text angezeigt werden. Die Zuordnung geschieht durch eine case ... switch Auswahl.

switch WGK do
case "1":
"schwach wassergefährdend"
case "2":
"deutlich wassergefährdend"
case "3":
"stark wassergefährdend"
case "4":
"nicht wassergefährdend"
end

Es irritiert mich jetzt der case "4", denn das ist die Aufzählungsnummer des Auswahlfeldes - damit funktioniert es, nicht jedoch mit einem Textvergleich, wie case "n.w.g.". Wieso eigentlich nicht?
Bildschirmfoto 2019-05-10 um 14.32.24

Gruß Uwe

4 Antworten

null
    • Uwe_Wagner.2
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Habe es jetzt gefunden. Mit einem switch text(WGK) funktioniert es. Logisch finde ich es allerdings nicht.

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

     

    Anführungszeichen lassen Text erwarten - Du frägst aber IDs ab

     

    switch WGK do
    case 1:
    "schwach wassergefährdend"
    case 2:
    "deutlich wassergefährdend"
    case 3:
    "stark wassergefährdend"
    case 4:
    "nicht wassergefährdend"
    end

     

    sollte es tun...

     

    lg, Torsten

    • Uwe_Wagner.2
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Thorsten,

    eigentlich fragen ich immer Strings ab, case "1": usw. Habe jetzt im Handbuch gefunden, daß immer die interne ID geleifert wird, wenn man ein Auswahlfeld abfragt.
    Die Beschreibung im Manual scheint mir aber unsinnig zu sein, dort soll die ID in einen String und dann wieder in eine Number() umgewandelt werden number(text(choice)) wobei choice die interne ID des Auswahlfeldes ist.

    Zitat:

    "If value stems from a choice field, this will be the choice’s internal id. Use number(text(choice)) to get a numeric representation of the choice’s text."

    PS: deine Lösung ist natürlich die Richtige.

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe,

     

    eine Abfrage des Auswahlfeldes gibt immer die ID der gewählten Option aus, wenn nicht weiter spezifiziert, der number(text(choice))-Konstrukt ist überflüssig, wie Du ja selbst erkannt hast. text(Auswahlfeld) gibt vergebenen Text der Auswahl aus.

     

    Im Übrigen ist die direkte Verwendung der ID zu präferieren weil perfomanter.

     

    lg, Torsten

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 4Antworten
  • 1493Ansichten