Formulierung in SCL?

anne

Level-1
Beiträge
347
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Ihr,

ich habe eine Frage zur Schreibweise in SCL. Es sollen drei Werte verglichen werden:

Wertvergleich.jpg


Frage: Geht das auch kürzer, kann man die drei Ausdrücke in der Klammer nicht irgendwie zusammenfassen?

Lieben Dank!
 
Danke euch,

also geht diese Abfrage mit "IF" nicht komfortabler, richtig?

@VL: Dein Vorschlag dient ja der "1 aus n Auswahl" - kann ich hier auch den Befehl "ELSE" einbauen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke VL,

welche Formatierung ist bei dieser Anweisung denn am übersichtlichsten?

Sollte die folgende Anweisung nicht lieber an den Anfang der Zeile gesetzt werden; also z.B. direkt unter die 0 (von 0..3 :)?
 
bei nur einer anweisung schreib ich es in der regel direkt hinter den : ansonsten eingerückt um die zugehörigkeit zum label zu erkennen
 
Ja ok, danke.

Nun noch ein Problem... ich wollte jetzt gerne schreiben, wenn NOT 0, 1, 4
, dann ...

Also, wenn "Value" nicht den Wert 0, 1 oder 4 hat, dann...

Geht das auch mit dem Befehl "CASE"?
 
Zuletzt bearbeitet:
Das Beispiel von Vierlagig spricht ja eigentlich für sich. Wenn du es aber durchaus anders schöner findest dann geht es auh noch so :
Code:
A0.0 := (DB1.Value = 0) or (DB1.Value = 1) or  (DB1.Value = 4) ;
Ich glaube, in der übersetzten Form, würde mein Beispiel den kürzeren Code erzeugen 8)
 
das ist der von dir angefragte else zweig

Ja ist im Grunde korrekt, nur komme ich nicht ganz klar...

Auf Anforderung sollen in einem DB mehrere Datenfelder auf best. Inhalte geprüft werden und zwar wie folgt:

1) DBW0 und wenn ok
2) DBW2 und wenn ok
3) DBW4 und wenn ok
4) Eintrag XY in das Datenfeld Z

Ist aber ein falscher Eintrag in DBW0, DBW2 oder DBW4 enthalten, so soll sofort ein Eintrag in Datenfeld Z erfolgen und keine weitere Prüfung mehr passieren.

Das Problem ist nun, wie kann ich es anstellen, dass hintereinander alle Datenfelder abgefragt werden und (wenn kein Fehler) am Ende ein Eintrag in Datenfeld Z erfolgt?

Dazu müsste ich ja in der von VL vorgegebenen Struktur hinter jedem ":" gleich wieder eine neue "CASE-Anweisung" schreiben - das lässt das System aber nicht zu? :confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja ist im Grunde korrekt, nur komme ich nicht ganz klar...

Auf Anforderung sollen in einem DB mehrere Datenfelder auf best. Inhalte geprüft werden und zwar wie folgt:

1) DBW0 und wenn ok
2) DBW2 und wenn ok
3) DBW4 und wenn ok
4) Eintrag XY in das Datenfeld Z

Ist aber ein falscher Eintrag in DBW0, DBW2 oder DBW4 enthalten, so soll sofort ein Eintrag in Datenfeld Z erfolgen und keine weitere Prüfung mehr passieren.

Das Problem ist nun, wie kann ich es anstellen, dass hintereinander alle Datenfelder abgefragt werden und (wenn kein Fehler) am Ende ein Eintrag in Datenfeld Z erfolgt?

Dazu müsste ich ja in der von VL vorgegebenen Struktur hinter jedem ":" gleich wieder eine neue "CASE-Anweisung" schreiben - das lässt das System aber nicht zu? :confused:

vielleicht solltest du das gesamt konstrukt nochmal überdenken.
was macht sinn, was kann oder sollte anders gelöst werden ... aus den wenigen angaben bisher kann ich dir leider keinen wirklichen rat geben, aber manchmal denkt man einfach zu kompliziert. dann sollte man den rechner ausmachen, nach hause gehen und sich einen schönen chianti classico oder rioja ins glas füllen und abschalten...
 
Dazu müsste ich ja in der von VL vorgegebenen Struktur hinter jedem ":" gleich wieder eine neue "CASE-Anweisung" schreiben - das lässt das System aber nicht zu? :confused:

Hast du das ausprobiert ?
Ich wüßte jetzt keinen Grund, warum das system das nicht, bei richtiger Schreibweise, zulassen sollte - ausprobiert habe ich es jetzt aber nicht.
Ansonsten mach es doch mit einer verschachtelten IF-Struktur - das geht auf jeden Fall.
 
@4L:
Es wäre auch eigentlich seltsam gewesen wenn es nicht machbar gewesen sein sollte ... ;)

ich würde aber ehrlich gesagt nicht auf die idee kommen vier mal zu schachteln ... irgendwoe leidet die übersicht ...
ich bin fest davon überzeugt, dass das eigentliche problem eine sehr viel banalere lösung erfordert...
 
Dank' euch!

@VL: Ja, ich habe leider das Talent mich manchmal unklar auszudrücken - sag' jetzt aber bitte nicht, dass das frauentypisch ist, gelle! ;) Und dein Vorschlag klingt zwar gut, aber ich bekomme halt immer so schnell nen Schwips... und dann?

@LL: Stimmt, geht doch - war wohl ein Bedienerfehler!

Also, ich habe da mal was entworfen...

Test.jpg

Weiß jetzt nur nicht genau, ob es so klappt:

1) Also wenn in "Value_1" eine 1, 2 oder 3 steht, so wird anschließend der Inhalt von "Value_2" geprüft und wenn da eine 2 oder 4 steht, so wird in "Result" eine 1 eingetragen - passt das so?

2) Ist nun der Inhalt von "Value_1" oder "Value_2" nicht passend, so soll sofort eine 0 in "Result" eingetragen werden - also auch, wenn z.B. bei Value_1 ein Fehler aufgetreten ist - hier bin ich mir nicht ganz sicher, ob das auch so ist?

3) Passt die Formatierung - oder könnte ich das übersichtlicher einrücken?

Lieben Dank für eine Korrektur!
 
Zurück
Oben