Thomas hat da schon einen Ansatz aufgezeichnet:
- Für jedes Schlüsselwort ein Setup-Dokument, wie von Thomas beschrieben
Das wäre eine Möglichkeit ich möchte allerdings die Werte in einem Setup-Dokument haben. Ich werde die Sache dann erstmal als erledigt betrachten, wie schon erwähnt klappts ja mit drei Werten. Wenn es evt. irgendwann mal mehr werden naja dann haben wir evt. auch schon R6 und ich kann die Schleifenfunktion nehmen.
Nachfolgend mein Code (vielleicht wird ja jemand inspiriert und hat ne einfacherer Lösung:
REM "Setzen und Auslesen verschiedener Variablen.";
FIELD Model_T := Model_T;
TempLUView := "LUKeyword_V";
TempLUKeyTyp := "Typ";
TempLUKeyMod := "Modelle";
TempSelectTyp := @Explode(Typ_T;":");
TempLUAllTyp := @DbLookup("Notes":"NoCache";"";TempLUView; TempLUKeyTyp;2);
TempAllTyp := @If(@IsError(TempLUAllTyp);"Kein Schlüssel gefunden";TempLUAllTyp);
TempLUModell := @DbLookup("Notes":"NoCache";"";TempLUView; TempLUKeyMod;2);
TempModell := @If(@IsError(TempLUModell);"Kein Schlüssel gefunden";TempLUModell);
REM "Mit der folgenden Zeile werden die entsprechenden Modelle für einen Typ ermittelt.";
TempOneValList := @Left(TempSelectTyp;1) +@Trim(@Right(TempModell;TempSelectTyp ));
REM "Mit den folgenden Zeilen werden die entsprechenden Modelle für einen nicht angewählten Typ ermittelt.";
REM "Diese Zeile wird benötigt wenn drei Type vorhanden sind.";
REM "Zuerst ermitteln welcher Typ nicht angewählt ist.";
TempTypNotSelect := @Explode(@ReplaceSubstring(TempAllTyp;TempSelectTyp;"");"");
REM "Die Modelle des nicht angewählten Typs ermitteln.";
TempNotSelList := TempTypNotSelect +@Trim(@Right(TempModell;TempTypNotSelect));
REM "Nun alle Modelle ermitteln die den angewählten Typen entsprechen.";
REM "Dies wird dadurch erreicht das TempNotSelList von TempModell Replaced wird.";
TempTwoValList := @Explode(@ReplaceSubstring(TempModell;TempNotSelList;"");"");
REM "Die nächsten Zeilen werden zur ermittlung der Anzeige Werte gebraucht.";
Temp1SelectTyp := @If(@Elements(TempSelectTyp) = 1);
Temp2SelectTyp := @If(@Elements(TempSelectTyp) = 2);
Temp3SelectTyp := @If(@Elements(TempSelectTyp) = 3);
Temp1Typ := @If(@Elements(TempAllTyp) = 1);
Temp2Typ := @If(@Elements(TempAllTyp) = 2);
Temp3Typ := @If(@Elements(TempAllTyp) = 3);
REM "Je nachdem wieviele Typen als Vorgabe und als Auswahl vorhanden sind gibt es verschiedene Anzeigefälle.";
TempShowOne := @If(Temp2Typ & Temp1SelectTyp) | @If(Temp3Typ & Temp1SelectTyp);
TempShowTwo := @If(Temp3Typ & Temp2SelectTyp);
TempShowAll := @If(Temp1Typ & Temp1SelectTyp) | @If(Temp2Typ & Temp2SelectTyp) | @If(Temp3Typ & Temp3SelectTyp);
REM "Am Schluss die Auswahl was angezeigt werden soll.";
@If(TempSelectTyp = "";"Werte erscheinen nach Auswahl Typ";TempShowOne;TempOneValList;TempShowTwo;TempTwoValList;TempShowAll;TempModell;"FEHLER")
Gruss und schönen Sonntag
Boris