0
Fehlersuche (switch/case)
Hallo Leute, ich bin (mal wieder) völlig ratlos. Und mittlerweile auch etwas frustriert. Kann mir vielleicht jemand sagen, was an folgender Konstruktion falsch sein könnte?
switch text(Dokumenttyp) do (<-- "Dokumenttyp" ist ein Auswahlfeld)
case "Angebot": let tPraefix := "AG"
case "Auftrag": let tPraefix := "AF"
case "Rechnung": let tPraefix := "RE"
end
Ich bekomme immer eine Fehlermeldung, die auf den Doppelpunkt des zweiten(!) "case" verweist (hier: "Auftrag"):
»Unexpected keyword: case in Zeile X, Spalte Y«
Klicke ich trotzdem mal auf "OK", um zu sehen, was passiert, dann entfernt Ninox alles ab der switch-Konstruktion und setzt an die Stelle einen Fehlerhinweis in den Editor:
»ERR("Symbol erwartet: case, default, end")«
Natürlich habe ich schon alles Mögliche ausprobiert: Variable statt Feldname, rein numerische Auswertung statt text(), gelöscht und komplett neu geschrieben … Alles egal, die Fehlermeldung kommt immer wieder an derselben Stelle. Das erste "case" bleibt unbeanstandet.
Wäre für jede Idee, jeden Tipp dankbar.
Grüße - Axel
switch text(Dokumenttyp) do (<-- "Dokumenttyp" ist ein Auswahlfeld)
case "Angebot": let tPraefix := "AG"
case "Auftrag": let tPraefix := "AF"
case "Rechnung": let tPraefix := "RE"
end
Ich bekomme immer eine Fehlermeldung, die auf den Doppelpunkt des zweiten(!) "case" verweist (hier: "Auftrag"):
»Unexpected keyword: case in Zeile X, Spalte Y«
Klicke ich trotzdem mal auf "OK", um zu sehen, was passiert, dann entfernt Ninox alles ab der switch-Konstruktion und setzt an die Stelle einen Fehlerhinweis in den Editor:
»ERR("Symbol erwartet: case, default, end")«
Natürlich habe ich schon alles Mögliche ausprobiert: Variable statt Feldname, rein numerische Auswertung statt text(), gelöscht und komplett neu geschrieben … Alles egal, die Fehlermeldung kommt immer wieder an derselben Stelle. Das erste "case" bleibt unbeanstandet.
Wäre für jede Idee, jeden Tipp dankbar.
Grüße - Axel
4 Antworten
-
Hallo Axel,
ist tPraefix eine Variable oder ein Feld?
versuch mal so:
---
let AA := text(Dokumenttyp);
let tPraefix := switch AA do
case "Angebot":
"AG"
case "Auftrag":
"AF"
case "Rechnung":
"RE"
end
Leo -
So schnell konnte ich gar nicht "probieren", wie Leo mal wieder die Lösung hatte.
Aber noch zwei Fragen an Euch:
1. Wenn ich aus diesem Forum oder den FAQ Skriptteile kopiere, muss ich anschließend die Anführungszeichen ersetzen, sonst gibt's Fehlermeldungen.
Also z.B. wie oben:
case “Angebot”: muss ich umwandeln in case "Angebot":
Woran liegt das?
2. Wo meldet Ihr Euch für dieses "Forum" an. Ich muss jedesmal erst die FAQ aufmachen, mich dort anmelden und kann dann erst hier schreiben. GEht das auch einfacher?
Danke -
Leo, was soll ich sagen - es funktioniert! Auf diese Variante wäre ich nie gekommen. Vielen, vielen Dank! Du solltest dich von Ninox bezahlen lassen. ;)
Es ist mir zwar nach wie vor schleierhaft, warum meine Variante nicht funktioniert, aber das ist im Moment(!) egal. Auf zur nächsten Baustelle ...
PS: Ach so, tPraefix ist eine Variable. Aber wie gesagt: Ich hatte es wirklich in verschiedenen Konstellationen versucht. -
@Holzi: Ich melde mich auch immer über den Link im FAQ-Bereich an und wechsle dann hier ins Forum. Wobei mir gerade einfällt, dass man besagten Link ja auch direkt bookmarken könnte. Das werde ich mal ausprobieren.
Das mit den Anführungszeichen stimmt. Wahrscheinlich unterschiedliche Zeichencodierungen. Da muss man aufpassen. Immerhin erkennt man es schon optisch.
Content aside
- vor 6 JahrenZuletzt aktiv
- 4Antworten
- 3556Ansichten