0

Werte eines Mehrfachauswahlfeldes (MAF) an eine globale Funktion übergeben?

Hallo.

Die globale Funktion akzeptiert die Wertte text, number, date:

Mit der Funktion numbers(Mehrfachauswahlfeld) erhalte ich ein Array mit den ausgewählten Daten des MAF.

Bsp. let vWerte := numbers(MAF)

Besteht die Möglichkeit dieses Ergebnis an eine globale Funktion zu übergeben oder können nur text, number , date übergeben werden?

Wie müsste dann die globale Funktion definiert werden.

Bsp. function fx_MFA(vWerte : ?) do (irgendwas) end

function fx_MFA(vWerte:array) ergibt eine Fehlermeldung.

Danke vorab.

Gruss

UweG

3 Antworten

null
    • Mirko
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe,

    du kannst der Funktion das Array als text übergeben und in der Funktion wieder ein Array erstellen, wenn du es dort als Array benötigst.

    Bsp:

    function AnzMehrfachauswahl(auswahl : text) do
    let ary := split(auswahl, ",");
    cnt(ary)
    end

    Aufruf der FX:

    let auswahl := text(numbers(Mehrfachauswahl));
    AnzMehrfachauswahl(auswahl)

    Gruß

    Mirko

    • UweG
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Mirko

    Vielen Dank für die Antwort und die Idee.

    Es ergibt sich leider ein kleines Problem hieraus.

    Das Ausgangs Array ist ein numerisches Array. Nach der Split-Funktion in der globalen Funktion habe ich aber ein String-Array.
    Gibt es eine Möglichkeit ohne großen Aufwand (Schleife und item()) das String-Array in ein numerisches Array umzuwandeln?

    Gruss

    UweG

    • Mirko
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe,

    ist mir nicht bekannt, vielleicht weiß einer der Experten das.

    Meine Lösung wäre:

    function Mehrfachauswahl(auswahl : text) do
    let ary := split(auswahl, ",");
    let ary2 := [0];
    ary2 := null;
    for i in range(0, cnt(ary)) do
    let wert := [number(item(ary, i))];
    ary2 := array(ary2, wert)
    end;
    cnt(ary2)
    end;
    let auswahl := text(numbers(Mehrfachauswahl));
    Mehrfachauswahl(auswahl)

    Gruß

    Mirko