Switch Problem! oder doch IF verwenden?
Hallo es ist bestimmt wieder etwas kleines, warum es bei mir wieder hackt. Ich habe mir folgende Anweisung gebastelt. Vieles klappt gut, aber die switch Anweisung nicht.
for i in unique('PV-String'.Kabel) do
let a := first(select Produkte where Produktname = i.Produktname);
let CA := sum('PV-String'.'PV-Strings');
let BB := switch CA >= 0 do
case CA > 1 and CA < 2:
1
case CA < 4:
2
case CA > 5:
3
end;
let newP := (create Produktauswahl);
newP.(Produkte := a);
newP.(Projekt := me);
newP.('Stück' := BB)
end
Ich möchte gerne das die Summe der PV-Strings // let CA := sum('PV-String'.'PV-Strings'); //
In der Switch geprüft wird und
Wenn sum: 1 bis 2 PV-Strings dann Stück 1 anlegen
Wenn sum: 3 bis 4 PV-Strings dann Stück 2 anlegen
Wenn sum: 5 bis 6 PV-Strings dann Stück 3 anlegen
Wenn sum: 7 bis 8 PV-Strings dann Stück 4 anlegen
neuer Datensatz in der Tabelle "Produktauswahl".
vielen Dank für die Hilfe
2 Antworten
-
Wenn es jemanden weiter hilft! Ich habe das Problem jetzt so gelöst.
for i in unique('PV-String'.Kabel) do
let a := first(select Produkte where Produktname = i.Produktname);
let CA := sum('PV-String'.'PV-Strings');
let BB := switch CA > 0 do
case CA = 1:
1
case CA = 2:
1
case CA = 3:
2
case CA = 4:
2
case CA = 5:
3
case CA = 6:
3
case CA = 7:
4
case CA = 8:
4
end;
let newP := (create Produktauswahl);
newP.(Produkte := a);
newP.(Projekt := me);
newP.('Stück' := BB)
end -
VS2021 said:
case CA > 1 and CA < 2:Größer 1 UND kleiner 2? Die Bedingung ist mit Ganzzahlen schwer zu erfüllen ...
Da die case-Struktur nach der ersten Übereinstimmung verlassen wird, denke ich, dass es so funktioniert hätte:
let BB := switch CA > 0 do case CA < 3: 1 case CA < 5: 2 case CA < 7: 3 case CA < 9: 4 end
Content aside
- vor 2 JahrenZuletzt aktiv
- 2Antworten
- 42Ansichten
-
2
Folge bereits