Wenn-Dann Abfrage mit mehreren Bedingungen
- FlowHeater-Team
- Autor
- Offline
- Administrator
Weniger
Mehr
5 Jahre 2 Tage her #3845
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.
Wenn-Dann Abfrage mit mehreren Bedingungen wurde erstellt von FlowHeater-Team
Hallo Supporter,
ich habe das Problem bei einfachen IF Then Anweisungen kein Else hinzufügen zu können. Ich möchte eine Textdatei in der Spalte 5 ab und zu leer ist mit einem Text füllen aber nur wenn Spalte 1 einen Wert hat der größer als 9999 ist .
Vorab vielen Dank für Info ..!
M.f.G.
M. Schmidt
Anfrage per Email erhalten
ich habe das Problem bei einfachen IF Then Anweisungen kein Else hinzufügen zu können. Ich möchte eine Textdatei in der Spalte 5 ab und zu leer ist mit einem Text füllen aber nur wenn Spalte 1 einen Wert hat der größer als 9999 ist .
Vorab vielen Dank für Info ..!
M.f.G.
M. Schmidt
Anfrage per Email erhalten
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.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Autor
- Offline
- Administrator
5 Jahre 2 Tage her #3846
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 Wenn-Dann Abfrage mit mehreren Bedingungen
Hallo Herr Schmidt,
hierfür benötigen Sie eine verschachtelte Bedingung. Im Anhang finden Sie ein kleines Beispiel dazu.
Die zwei Felder werden dabei erst einmal separat auf Ihre Richtigkeit geprüft. In Ihrem Fall einmal ob die dritte (bzw. fünfte) Spalte leer ist sowie ob die erste Spalte einen Wert größer als 9999 aufweist.
Achtung: Bei dieser Bedingung müssen Sie im IF-THEN-ELSE Heater den FlowHeater Datentyp auf einen Zahlen Datentyp (Integer, Decimal, Double oder Currency) ändern, siehe Screenshot. Ansonsten wird hier nicht der Zahlenwert, sondern Zeichenweise verglichen. Hier wäre dann 9 schon größer als 1000, da das erste Zeichen bereits eine höhere Zeichensatz Kodierung aufweist!
Als Rückgabewert, falls die Bedingung zutrifft, wird hier nur ein statischer Wert über den X-Value Heater zurückgegeben, im Beispiel das Zeichen „#“.
Diese beiden Vergleichswerte werden dann über einen String Append Heater zusammengefasst und ein weiterer IF-THEN-ELSE Heater prüft dann ob dieser zusammengefasste Wert „##“ ist. Das ist er nur der Fall, wenn beide vorherigen Bedingungen zutreffen. Hier können Sie dann Ihren statischen Wert im DANN Zweig der Bedingung zurückgeben. Im SONST Zweig wird das CSV Feld an die WRITE Seite weitergereicht.
Alternative, erfordert Grundkenntnisse in der Programmierung
Als Alternative zu diesem Vorgehen können Sie auch einen .NET Script Heater und untenstehendes C# Skript dafür verwenden. Wurde ebenfalls im Beispiel berücksichtigt.
C# Skript
hierfür benötigen Sie eine verschachtelte Bedingung. Im Anhang finden Sie ein kleines Beispiel dazu.
Die zwei Felder werden dabei erst einmal separat auf Ihre Richtigkeit geprüft. In Ihrem Fall einmal ob die dritte (bzw. fünfte) Spalte leer ist sowie ob die erste Spalte einen Wert größer als 9999 aufweist.
Achtung: Bei dieser Bedingung müssen Sie im IF-THEN-ELSE Heater den FlowHeater Datentyp auf einen Zahlen Datentyp (Integer, Decimal, Double oder Currency) ändern, siehe Screenshot. Ansonsten wird hier nicht der Zahlenwert, sondern Zeichenweise verglichen. Hier wäre dann 9 schon größer als 1000, da das erste Zeichen bereits eine höhere Zeichensatz Kodierung aufweist!
Als Rückgabewert, falls die Bedingung zutrifft, wird hier nur ein statischer Wert über den X-Value Heater zurückgegeben, im Beispiel das Zeichen „#“.
Diese beiden Vergleichswerte werden dann über einen String Append Heater zusammengefasst und ein weiterer IF-THEN-ELSE Heater prüft dann ob dieser zusammengefasste Wert „##“ ist. Das ist er nur der Fall, wenn beide vorherigen Bedingungen zutreffen. Hier können Sie dann Ihren statischen Wert im DANN Zweig der Bedingung zurückgeben. Im SONST Zweig wird das CSV Feld an die WRITE Seite weitergereicht.
Alternative, erfordert Grundkenntnisse in der Programmierung
Als Alternative zu diesem Vorgehen können Sie auch einen .NET Script Heater und untenstehendes C# Skript dafür verwenden. Wurde ebenfalls im Beispiel berücksichtigt.
C# Skript
Code:
public object DoWork()
{
if (InValues.Length != 2)
throw new Exception("Es werden 2 Eingangsparameter erwartet!");
// ersten Eingangsparameter holen = 1. Spalte
int zahl = (int)InValues[0].GetInteger();
// zweiten Eingangsparameter holen = 3. Spalte
string wert = (string)InValues[1].GetString();
if (wert.Trim().Length == 0 && zahl > 9999)
{
wert = "3. Spalte leer und 1. Spalte größer 9999";
}
return wert;
}
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:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.261 Sekunden