- Beiträge: 22
Mehrere IF-Abfragen verknüpfen
- Michael Schaffert
- Autor
- Offline
- Benutzer
Weniger
Mehr
3 Jahre 8 Monate her #4176
von Michael Schaffert
Mehrere IF-Abfragen verknüpfen wurde erstellt von Michael Schaffert
Hallo zusammen!
Ich habe eine Frage zu IF-Heatern. Es geht darum folgende Abfrage zu konstruieren:
"Wenn Spalte1 UND Spalte2 NICHT LEER sind, dann nimm Spalte 1, ansonsten prüfe ob Spalte 3 UND Spalte 4 NICHT LEER sind, dann nimm Spalte 3, ansonsten nimm doch Spalte 1."
Lässt sich das überhaupt mit den Heatern noch abbilden oder wird hier noch ein .NET-Skript notwendig?
Wäre super, wenn Ihr mir hiermit ein wenig helfen könntet!
Viele Grüße
Michael
Ich habe eine Frage zu IF-Heatern. Es geht darum folgende Abfrage zu konstruieren:
"Wenn Spalte1 UND Spalte2 NICHT LEER sind, dann nimm Spalte 1, ansonsten prüfe ob Spalte 3 UND Spalte 4 NICHT LEER sind, dann nimm Spalte 3, ansonsten nimm doch Spalte 1."
Lässt sich das überhaupt mit den Heatern noch abbilden oder wird hier noch ein .NET-Skript notwendig?
Wäre super, wenn Ihr mir hiermit ein wenig helfen könntet!
Viele Grüße
Michael
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
3 Jahre 8 Monate her - 3 Jahre 8 Monate her #4177
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Mehrere IF-Abfragen verknüpfen
Hallo Herr Schaffert,
ja es geht, aber verschachtelte IF-THEN-ELSE (Wenn-Dann-Sonst) Bedingungen sind immer etwas schwierig abzubilden. Schöner und mit nur einem Heater geht es aber mit dem .NET Script Heater , Beispiel siehe unten bzw. im Anhang.
Vorgehensweise über verschachtelte IF-THEN-ELSE Bedingung
Als erstes benötigen Sie hierfür pro Wertepaar das geprüft werden soll zwei IF-THEN-ELSE Bedingungen , siehe Screenshot 1 und 2. Pro Bedingung wird hier lediglich geprüft ob das Feld nicht leer ist (!= empty).
Ist das der Fall wird das boolesche Ergebnis davon zurückgegeben (ja bzw. nein). Die Werte beider Bedingungen werden dann über einen String Append Heater zu einer Zeichenfolge mit dem Trennzeichen „#“ zusammengefasst. Auf diesen Werten wird dann in weiteren zwei Bedingungen jeweils auf „= ja#ja“ abgeprüft, siehe Screenshot Punkte 3 und 4. In der Bedingung „4“ wird im ELSE bzw. SONST Zweig der Standwert von Spalte 1 zurückgegeben ansonsten Spalte 3. Das Ergebnis daraus wandert zur 4. Bedingung wo wiederum auf „ja#ja“ abgeprüft wird. Trifft das zu, wird Spalte 1 zurückgegeben und falls nicht das Ergebnis aus Bedingung 3.
Vorgehensweise über .NET Script Heater
Über untenstehendes C# Skript (Kommentare sind im Skript enthalten) kann die doch recht komplexe verschachtelte Bedingung mit nur einem .NET Script Heater abgebildet werden, siehe Screenshot Punkt 5. Das Skript benötigt als Eingangsparameter alle 4 Spalten in der richtigen Reihenfolge. Nachteil daran, es sind Grundkenntnisse in der Programmierung erforderlich.
C# Skript
ja es geht, aber verschachtelte IF-THEN-ELSE (Wenn-Dann-Sonst) Bedingungen sind immer etwas schwierig abzubilden. Schöner und mit nur einem Heater geht es aber mit dem .NET Script Heater , Beispiel siehe unten bzw. im Anhang.
Vorgehensweise über verschachtelte IF-THEN-ELSE Bedingung
Als erstes benötigen Sie hierfür pro Wertepaar das geprüft werden soll zwei IF-THEN-ELSE Bedingungen , siehe Screenshot 1 und 2. Pro Bedingung wird hier lediglich geprüft ob das Feld nicht leer ist (!= empty).
Ist das der Fall wird das boolesche Ergebnis davon zurückgegeben (ja bzw. nein). Die Werte beider Bedingungen werden dann über einen String Append Heater zu einer Zeichenfolge mit dem Trennzeichen „#“ zusammengefasst. Auf diesen Werten wird dann in weiteren zwei Bedingungen jeweils auf „= ja#ja“ abgeprüft, siehe Screenshot Punkte 3 und 4. In der Bedingung „4“ wird im ELSE bzw. SONST Zweig der Standwert von Spalte 1 zurückgegeben ansonsten Spalte 3. Das Ergebnis daraus wandert zur 4. Bedingung wo wiederum auf „ja#ja“ abgeprüft wird. Trifft das zu, wird Spalte 1 zurückgegeben und falls nicht das Ergebnis aus Bedingung 3.
Vorgehensweise über .NET Script Heater
Über untenstehendes C# Skript (Kommentare sind im Skript enthalten) kann die doch recht komplexe verschachtelte Bedingung mit nur einem .NET Script Heater abgebildet werden, siehe Screenshot Punkt 5. Das Skript benötigt als Eingangsparameter alle 4 Spalten in der richtigen Reihenfolge. Nachteil daran, es sind Grundkenntnisse in der Programmierung erforderlich.
C# Skript
Code:
public object DoWork()
{
int retSpalte;
if (InValues.Length != 4)
throw new ArgumentException("es werden 4 Eingangsparameter erwartet!");
// Eingangsparameter holen
string s1 = (string)InValues[0].GetString();
string s2 = (string)InValues[1].GetString();
string s3 = (string)InValues[2].GetString();
string s4 = (string)InValues[3].GetString();
// Prüfungen durchführen
if (s1.Trim().Length != 0 && s2.Trim().Length != 0)
{
retSpalte = 0; //= 1. Eingangsparamter
}
else if (s3.Trim().Length != 0 && s4.Trim().Length != 0)
{
retSpalte = 2; //= 3. Eingangsparamter
}
else
{
retSpalte = 0; // = 1. Eingangsparamter per Default
}
// richtge Spalte lt. Prüfung zurückliefern
return InValues[retSpalte];
}
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Letzte Änderung: 3 Jahre 8 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Michael Schaffert
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 22
3 Jahre 8 Monate her #4188
von Michael Schaffert
Michael Schaffert antwortete auf Mehrere IF-Abfragen verknüpfen
Vielen Dank für die ausführliche Antwort.
Ich habe es im 1. Schritt jetzt mal "grafisch" gelöst. Aber als .NET-Heater macht es natürlich auch Sinn. Das muss ich mir mal noch genauer anschauen.
Viele Grüße
Michael
Ich habe es im 1. Schritt jetzt mal "grafisch" gelöst. Aber als .NET-Heater macht es natürlich auch Sinn. Das muss ich mir mal noch genauer anschauen.
Viele Grüße
Michael
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.271 Sekunden