Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Ich glaube ich habe das mit dem Validierungsschema wohl noch nicht ganz verstanden.
Das Gefühl haben wohl viele Anwender, vor allem am Anfang. Man muss halt gegenüber anderen Programmiersprachen etwas umdenken. Das lernt man aber mit der Zeit.
So auf den ersten Blick finde ich da jetzt keinen Fehler, aber das Validierungsschema ist immer wieder mal für Überraschungen gut...
Aber man kann die Sache durchaus einfacher ausdrücken:
Kurz, nur ein if-then-else und eine Hilfs-Variable pro Fenster (die dann nur 0 oder 1 sein wird), und die beliebigen Summen (entsprechend der gewünschten Gruppen) werden einfach außerhalb jeglicher if-Konstrukte und von diesen unabhängig mit ganz normalen mathematischen Ausdrücken ermittelt. Denn auch diese werden vom Validierungsschema immer dann erneut ausgewertet, sobald sich wenigstens ein Argument geändert hat. Ich halte das für übersichtlicher, da zunächst jedes Fenster unabhängig "erfasst" wird, die Gruppierung dann über einfach verständliche Rechnungen erfolgen.
Es ginge sogar ganz ohne if, denn letzlich ist AUS=0 und EIN=1, und man könnte die Werte der GAs in den Wertebereich der Summenvariablen konvertieren, aber mit if ist es wohl verständlicher.
So auf den ersten Blick finde ich da jetzt keinen Fehler, aber das Validierungsschema ist immer wieder mal für Überraschungen gut...
Aber man kann die Sache durchaus einfacher ausdrücken:
Kurz, nur ein if-then-else und eine Hilfs-Variable pro Fenster (die dann nur 0 oder 1 sein wird), und die beliebigen Summen (entsprechend der gewünschten Gruppen) werden einfach außerhalb jeglicher if-Konstrukte und von diesen unabhängig mit ganz normalen mathematischen Ausdrücken ermittelt. Denn auch diese werden vom Validierungsschema immer dann erneut ausgewertet, sobald sich wenigstens ein Argument geändert hat. Ich halte das für übersichtlicher, da zunächst jedes Fenster unabhängig "erfasst" wird, die Gruppierung dann über einfach verständliche Rechnungen erfolgen.
Es ginge sogar ganz ohne if, denn letzlich ist AUS=0 und EIN=1, und man könnte die Werte der GAs in den Wertebereich der Summenvariablen konvertieren, aber mit if ist es wohl verständlicher.
Schau dir mal deine erste if change Anweisung an..
Du setzt bei jeder Statusänderung auf 0 zurück !!
Hallo Brick,
das ist richtig. Ich setzte jedesmal auf 0 zurueck um dann ueber die IF Anweisung die offenen Fenster zu berechnen. Es sieht aber so aus als wenn das Validierungsschema nicht immer durch die IF Anweisung laeuft und korrekt zaehlt.
Hast Du einen Tipp wie ich so einen Zaehler realisieren koennte?
if change("Window Reeder Master Bedroom North Right-10/1/0") or change("Window Reeder Master Bedroom North Left-10/1/1") then {
openwindowbedroom1North = 0;
if ("Window Reeder Master Bedroom North Right-10/1/0" == AUS) then {openwindowbedroom1North = openwindowbedroom1North + 1} endif;
if ("Window Reeder Master Bedroom North Left-10/1/1" == AUS) then {openwindowbedroom1North = openwindowbedroom1North + 1} endif
} endif
Hi,
Schau dir mal deine erste if change Anweisung an..
Du setzt bei jeder Statusänderung auf 0 zurück !!
ich habe ein Problem beim Feststellen wieviele Fenster in enem Raum, bzw im ganzen Haus geoeffnet sind.
Die Gruppenaddressen werden noch richtig ausgewertet, aber die Variable
openwindowbedroom1 (2 Fenster nach Norden) kommen immer auf andere Ergebnisse. Es sieht so aus, als wenn If Anweisung nicht richtig durchlaufen wird. Ich moechte die Anzahl der geoeffneten Fenster dann gerne auf eine Visu anzeigen.
Hat jemand eine Idee was falsch laufen koennte?
// Calculate Window openings
// Masterbedroom Windows
if change("Window Reeder Master Bedroom North Right-10/1/0") or change("Window Reeder Master Bedroom North Left-10/1/1") then {
openwindowbedroom1North = 0;
if ("Window Reeder Master Bedroom North Right-10/1/0" == AUS) then {openwindowbedroom1North = openwindowbedroom1North + 1} endif;
if ("Window Reeder Master Bedroom North Left-10/1/1" == AUS) then {openwindowbedroom1North = openwindowbedroom1North + 1} endif
} endif
if change("Window Reeder Master Bedroom West Right-10/1/2") or change("Window Reeder Master Bedroom West Left-10/1/3") then {
openwindowbedroom1West = 0;
if ("Window Reeder Master Bedroom West Right-10/1/2" == AUS) then {openwindowbedroom1West = openwindowbedroom1West + 1} endif;
if ("Window Reeder Master Bedroom West Left-10/1/3" == AUS) then {openwindowbedroom1West = openwindowbedroom1West + 1} endif
} endif
if (openwindowbedroom1North > 0) or (openwindowbedroom1West > 0) or change("Windows Reeder Ensuite-10/1/5") or change("Window Reeder WC 1-10/1/4") then {
openwindowbedroom1 = 0;
if ("Windows Reeder Ensuite-10/1/5" == AUS) then {openwindowbedroom1 = openwindowbedroom1 + 1} endif;
if ("Window Reeder WC 1-10/1/4" == AUS) then {openwindowbedroom1 = openwindowbedroom1 + 1} endif;
openwindowbedroom1 = openwindowbedroom1 + openwindowbedroom1North + openwindowbedroom1West;
write ("Window Reeder Master Bedroom All-10/0/1", openwindowbedroom1)
} endif
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Einen Kommentar schreiben: