- Beiträge: 68
komplexe If Then Else Anweisung
- Oliver Barz
- Autor
- Offline
- Benutzer
-
Weniger Mehr
4 Jahre 2 Monate her #4233 von Oliver Barz
komplexe If Then Else Anweisung wurde erstellt von Oliver Barz
Hallo Herr Stark,
ich komme mit nachfolgender Aufgabenstellung einfach nicht zum Ziel:
Hier die Tabelle mit 2 Feldern auf Read um die es geht. Das Ergebnis soll in ein Preisfeld auf Write geschrieben werden.
Preis;Anzahl
15;9
25;3
27;6
30;1
40;15
Wenn "Anzahl" <10 AND >=5 UND "Preis" >20 Dann "Preis" *1,8
Wenn "Anzahl" <5 AND >
UND "Preis" >20 Dann "Preis" *2,8
Wenn "Anzahl"
UND "Preis" >20 Dann "Preis" *3,8
Sonst "Preis"
Hmm, ist sowas überhaupt machbar?
VG Oliver Barz
ich komme mit nachfolgender Aufgabenstellung einfach nicht zum Ziel:
Hier die Tabelle mit 2 Feldern auf Read um die es geht. Das Ergebnis soll in ein Preisfeld auf Write geschrieben werden.
Preis;Anzahl
15;9
25;3
27;6
30;1
40;15
Wenn "Anzahl" <10 AND >=5 UND "Preis" >20 Dann "Preis" *1,8
Wenn "Anzahl" <5 AND >

Wenn "Anzahl"

Sonst "Preis"
Hmm, ist sowas überhaupt machbar?
VG Oliver Barz
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Oliver Barz
- Autor
- Offline
- Benutzer
-
Weniger Mehr
- Beiträge: 68
4 Jahre 2 Monate her - 4 Jahre 2 Monate her #4234 von Oliver Barz
Oliver Barz antwortete auf komplexe If Then Else Anweisung
Ich war wieder mal etwas vorschnell mit meiner Anfrage, denn ich konnte nicht aufhören, weiter nach einer Lösung zu suchen, was mir nun offenbar gelungen ist.
Diese ist allerdings sehr komplex wie ich finde, und möglicherweise gibt es eine schlankere Methode.
Ich habe in der Ersten Abfrage eine 1,2,3 oder 4 vom X-Value Heater weitergegeben.
In der zweiten Abfrage, habe ich die möglichen ( es sind nur 4) Kombinationen abgefragt und eine entsprechende Berechnung ausgeführt.
VG Oliver Barz
Diese ist allerdings sehr komplex wie ich finde, und möglicherweise gibt es eine schlankere Methode.
Ich habe in der Ersten Abfrage eine 1,2,3 oder 4 vom X-Value Heater weitergegeben.
In der zweiten Abfrage, habe ich die möglichen ( es sind nur 4) Kombinationen abgefragt und eine entsprechende Berechnung ausgeführt.
VG Oliver Barz
Anhänge:
Letzte Änderung: 4 Jahre 2 Monate her von FlowHeater-Team. Begründung: Link angepasst
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
-
- Offline
- Administrator
-
Weniger Mehr
- Beiträge: 2053
4 Jahre 2 Monate her - 4 Jahre 2 Monate her #4238 von FlowHeater-Team
gruß
Robert Stark
FlowHeater-Team antwortete auf komplexe If Then Else Anweisung
Hallo Herr Barz,
im Prinzip ist das schon richtig wie Sie es gemacht haben. So wird es aber irgendwann unübersichtlich. Einfacher und mit nur einem .NET Script Heater geht es per Skript. Das Problem daran ist, es sind Grundkenntnisse in der Programmierung erforderlich. Ich denke aber Sie sollten damit zurechtkommen, siehe Kommentare im Skript.
Im Anhang finden Sie ein kleines Beispiel dazu.
Beispiel VB.NET Skript für komplexe Bedingung
im Prinzip ist das schon richtig wie Sie es gemacht haben. So wird es aber irgendwann unübersichtlich. Einfacher und mit nur einem .NET Script Heater geht es per Skript. Das Problem daran ist, es sind Grundkenntnisse in der Programmierung erforderlich. Ich denke aber Sie sollten damit zurechtkommen, siehe Kommentare im Skript.
Im Anhang finden Sie ein kleines Beispiel dazu.
Beispiel VB.NET Skript für komplexe Bedingung
Code:
Public Function DoWork() As Object ' Anzahl Eingangsparameter prüfen If InValues.Length <> 2 Then Throw New Exception("2 Eingangsparameter erwartet") End If Dim preis as Decimal Dim anzahl as Decimal ' Eingangsparameter zuweisen preis = InValues(0).GetDecimal() anzahl = InValues(1).GetDecimal() ' Bedingungen und Berechnung durchführen If anzahl < 3 And preis > 20 Then DoWork = preis * 3.8 Else If anzahl < 5 And anzahl >=3 And preis > 20 DoWork = preis * 2.8 Else If anzahl < 10 And anzahl >=5 And preis > 20 DoWork = preis * 1.8 Else DoWork = preis End If End Function
gruß
Robert Stark
Letzte Änderung: 4 Jahre 2 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.271 Sekunden