0

Hilfe zu Arrays

Hallo zusammen.... ich stehe etwas auf´m Schlauch.

Wie kann ich denn Arrays dynamisch zuweisen??? z.B. über ein Auswahlfeld?

 

Ich habe eine Schleife

for i in myArray do

...

 

Das Array möchte ich gerne dynamisch über eine if oder case Bedingung zuweisen.

 

switch 'Verpackung' do

case 1: let myArray := 'Farbe Box';

case 2: let myArray := 'Farbe Tüte'

usw...

 

das klappt so nicht. myArray kann nicht gefunden werden...

 

Dann dachte ich die Lösung zu haben 

 

let myArray := [] 

 

damit es schonmal leer existiert...

klappt nicht. 

Wie kann man das umsetzen? Einem Array je nach Bedingung verschiedenen Inhalte zuweisen.... 

Danke euch vorab

Tobias

7 Antworten

null
    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Tobias,

    verstehe ich richtig, dass du alle Werte in dem Array auf  'Farbe Box' ändern möchtest wenn Verpakung=1 ist? Wenn Ja, dann:

    ---

    for i in myArray do

    switch 'Verpackung' do

    case 1:  'Farbe Box'

    case 2:  'Farbe Tüte'

    defaul: i

    end

    end

    ---

    Leo

    • T_Bartzsch
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, ich möchte die Variable myArray je nach Auswahl "Verpackung" unterschiedlich bestücken...

     

    Wenn Verpackung 1 dann myArray := "Grün, Gelb, Blau, Rot" (bzw. bei mir dann chosen('Farbe Box')

    wenn Verpackung 2 dann myArray := "Schwarz,Weiß,Grau"  (bzw. bei mir chosen('Farbe Tüte')

     

    Ich habe jetzt zu Beginn des scripts zunächst let myArray := chosen('Farbe Box') festgelegt, um es dann danach je nach Auswahl neu zu beschreiben. 

    Das funktioniert soweit. Ich muss aber Anfangs myArray irgendwie erst mit echten Werten befällen, sonst findet er myArray in der späteren Formel nicht...

    Danke Dir...

    Tobias

    • Torsten_Stang.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

     

    wir haben da mal was via Telegram erarbeitet, um dialog()-Optionen dynamisch zu füllen, vielleicht meint Tobias sowas?

     

    var myOption := ["nichts"];
    <Bedingung 1>
       myOption := unique(myOption, "Test1")
    <end>;
    <Bedingung 2>
       myOption := unique(myOption, "Test2")
    <end>;
    <Bedingung 3>
       myOption := unique(myOption, "Test3")
    <end>;
    dialog("Test", "Nu?", myOption)

     

    die "<Bedingung x>-<end>"-Konstrukte sind hier nur Platzhalter...

    • Torsten_Stang.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    ... zu spät ;)

    • T_Bartzsch
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo zusammen, danke euch nochmal für die Info...

    man muss tatsächlich die Arrays vorher festlegen bzw. die Variable zu einem Array machen... 

    Ich lasse eine bzw. je nach Auswahl zwei for-Schleifen durchlaufen, um Artikelvarianten zu generieren. Dabei gibt es je ein Multi-Auswahlfeld für farbige Boxen, farbige Tüten oder farbige Packs. Der Inhalt kann auch variieren, also Box Blau mit LogoEi Grün, Box Rot mit LogoEi Gelb usw.

    Ich habe also myArray und myArray2 welche ich dynamisch, je nachdem welches Mehrfachauswahlfeld gewählt wurde befüllen möchte.

    So funktioniert es aber:

     

    let myArray := chosen('Farbe Bag');
    let myArray2 := chosen('Sorte Lindor');
    switch Packungsart do
    case 1:
    (myArray := chosen('Farbe Box'))
    case 2:
    (myArray := chosen('Farbe Bag'))
    case 3:
    (myArray := chosen('Farbe Pack'))
    end;
    if Packungsinhalt > 0 then
    myVarianten := 2;
    switch Packungsinhalt do
    case 1:
    (myArray2 := chosen('Sorte Lindor'))
    case 2:
    (myArray2 := chosen('Lindor Doppel'))
    case 3:
    (myArray2 := chosen('Sorte Tartufi'))
    case 4:
    (myArray2 := chosen('Sorte Fioretto'))
    case 5:
    (myArray2 := chosen('Farbe Ei'))
    case 6:
    (myArray2 := chosen(Keksform))
    case 7:
    (myArray2 := chosen('Lind Herzen'))
    end
    else
    void
    end;

     

    LG

    Tobias 

    • Gunther.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    ich mach:

    let myArray :=[""]

    myArray :=null

    • Gunther.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    ich mach:

    let myArray :=[""]

    myArray :=null