0

Rückgabewert von dynamischen Auswahfeldern

Ich stehe gerade etwas auf dem Schlauch, wenn es darum geht zurückgegebene Werte von dynamischen Auswahlfeldern weiterzuverarbeiten.

Grundsätzlich ist es ganz einfach. In einem dynamischen Auswahlfeld soll ausgewählt werden, ob eine Privatadresse oder Geschäftsadresse verwendet werden soll. Entsprechend des vorletzten? Updates wird das dynamische Auswahfeld per Skript gefüllt:

let adressen := ['Rechnungsempfänger'.'Briefanschrift (privat)', 'Rechnungsempfänger'.'Briefanschrift (geschäftlich)'];
let zaehler := 0;
let name := "";
for i from 0 to length(adressen) do
    let titel := item(adressen, i);
    if titel then
        zaehler := zaehler + 1;
        if zaehler = 1 then
            name := "Privatadresse: "
        else
            name := "Geschäftsadresse: "
        end;
        {
            id: zaehler,
            caption: name + titel
        }
    end
end

Nun würde ich gerne den Inhalt des Feldes in einem weiteren Formelfeld weiterverarbeiten. Hierzu hatte ich mir schon einen älteren  Beitrag hierzu angeschaut. Ich war eigentlich davon ausgegangen, dass der reine Feldname den angezeigten Fedinhalt (als String) ausgibt. Das funktioniert auch solange, wie man ihn nur angezeigt haben möchte.

Sobald ich aber diesen Wert weiterverarbeiten will, z.B. mit String-Funktionen gibt beispielsweise folgenden Fehler: Die Funktion ist nicht definiert: substr(dchoice, number).

let unterscheidung := 'Auswahl Empfänger-Adresse';
unterscheidung := substr(unterscheidung, 10)

Ich habe natürlich schon versucht da einen String "reinzuzwingen" mit text() oder raw(), leider ohne Erfolg.

2 Antworten

null
    • Torsten_Stang.1
    • vor 2 Wochen
    • Gemeldet - anzeigen
    • Frank_Heitmann.1
    • vor 2 Wochen
    • Gemeldet - anzeigen

    Das hat auf jeden Fall schonmal geholfen, alle Möglichkeiten zu überblicken. Genau meinen Fall hat's zwar nicht behandelt - ich wüsste halt ganz gerne, warum die Rückgabe nicht als String weiterbehandelt werden kann.

    Ich hab's jetzt jedenfalls mit number(DAF) gelöst - war ja auch nicht so kompliziert.

    Zur Info hiermal die Formeln beider Felder:

    Auswahlfeld:

    let adressen := ['Rechnungsempfänger'.'Briefanschrift (privat)', 'Rechnungsempfänger'.'Briefanschrift (geschäftlich)'];
    let name := "";
    for i from 0 to length(adressen) do
        let titel := item(adressen, i);
        if titel then
            if i = 0 then
                name := "Privatadresse: "
            else
                name := "Geschäftsadresse: "
            end;
            {
                id: i + 1,
                caption: name + titel
            }
        end
    end
    

    Ergebnisanzeige:

    switch number('Auswahl Empfänger-Adresse') do
    case 1:
        'Rechnungsempfänger'.'Briefanschrift (privat)'
    case 2:
        'Rechnungsempfänger'.'Briefanschrift (geschäftlich)'
    end