Danke für die Erklärung, nun kann ich das Problem nachvollziehen :)
Und damit sehe ich auch den Fehler. Der liegt hier:
if ((value('EX06_02') == 2) and (value('EX07_01') == -9) or (value('EX07_01') == -1)) {
Genauer gesagt fehlen zwei Klammern. Sie meinen das hier:
if ((value('EX06_02') == 2) and ((value('EX07_01') == -9) or (value('EX07_01') == -1))) {
Ja, genau. Suchbild. Auflösung: Ich habe die hinteren beiden Bedingungen, die mittels "or" verknüpft sind in eine Klammer gesetzt, also:
if (
(value('EX06_02') == 2) and (
(value('EX07_01') == -9) or
(value('EX07_01') == -1)
)) {
Warum? Weil in PHP (und vielen anderen Programmiersprachen) das "Und" stärker bindet als das "Oder". Wie bei Punkt-vor-Strich in Mathe. Der Filter hat also erst überprüft, ob die Auswahloption markiert war und der Schieberegler -9 lieferte. Und dann nochmal, ob die Ausweichoption ausgewählt war. Und letzteres traf ja weiterhin zu.
Die Klammer prüft nun erstmal das "Oder" und dann erst das "Und".
Es ginge übrigens auch einfacher:
if ((value('EX06_02') == 2) and (value('EX07_01') < 0)) {