0

Fortlaufende Nummer abhängig vom Mehrfachauswahlfeld

Hallo Zusammen,

habe folgenden Code per Trigger auf einem Auswahlfeld:

let my := number(this.Nr);
let myZ := number(substr(last(((select Artikel) order by number(Nr)).Artikelnummer), 5, 4)) + 1;

Jetzt möchte ich aber je nach dem Text des Mehfachfelds den Buchstaben vor der Nummer ändern lassen.

z.B Auswahlfeld = Damen soll die Artikelnummer D0001 lauten, bei Herren dann H 0001 usw.

Habe schon mit if then probiert, bekomme es aber nicht so richtig hin.

Hat jemand eine Idee?

 

Gruß

Thomas

4 Antworten

null
    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Thomas,

     

    let my := number(this.Nr);
    let myB := switch Mehrfachfeld do
    case 1:
    "D"
    case 2:
    "H"
    end;
    let myZ := myB + number(substr(last(((select Artikel) order by number(Nr)).Artikelnummer), 5, 4)) + 1;

     

    So etwa?

     

    lg, Torsten

    • Thomas_Konradt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten,

    danke erstmal...hatte vorher an meinem Code was vergessenzu posten. Derzeit sieht er wie folgt aus.

    let my := number(this.Nr);
    let myB := switch Kategorie do
    case 1:
    "D"
    case 2:
    "H"
    case 3:
    "M"
    end;
    let myZ := number(substr(last(((select Artikel) order by number(Nr)).Artikelnummer), 3, 4)) + 1;
    Artikelnummer := myB + " " + format(myZ, "0000")

    Ich bekomme jetzt die richtigen Buchstaben vor den Artikelnummen angezeigt. Kennst du noch eine Möglichkeit, dass die fortlaufende Zahl pro Buchstaben sich fortsetzt.

    Gruß

    Thomas

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

    Hallo Thomas,

     

    im Prinzip könntest Du für myZ eine gleichlautende switch-case-Funktion durchlaufen und dort die select-Anweisung um z.B. '[contains(Artikelnummer,"D")]' erweitern.

     

    Für den Code bin ich im Trockenen aber nicht sattelfest genug, daher ohne Gewähr:

     

    let my := number(this.Nr);
    let myB := switch Kategorie do
    case 1:
    "D"
    case 2:
    "H"
    case 3:
    "M"
    end;
    let myZ := switch Kategorie do
    case 1:
    number(substr(last(((select Artikel) [contains(Artikelnummer,"D")] order by number(Nr)).Artikelnummer), 3, 4)) + 1
    case 2:
    number(substr(last(((select Artikel) [contains(Artikelnummer,"H")] order by number(Nr)).Artikelnummer), 3, 4)) + 1
    case 3:
    number(substr(last(((select Artikel) [contains(Artikelnummer,"M")] order by number(Nr)).Artikelnummer), 3, 4)) + 1
    end;
    Artikelnummer := myB + " " + format(myZ, "0000")

     

    ... ich tu mir generell schwer damit, wo die Bedingung hinkommt - normalerweise gehe ich am Objekt per try-and-error vor... ;-)

     

    lg, Torsten

    • Thomas_Konradt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten,

    volltreffer.......funktioniert einwandfrei, danke

     

    Gruß

    Thomas

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 4Antworten
  • 1353Ansichten