0

Dialog mit mehrzeiliger Auswahl ?

Hallo,

ich würde gerne eine bestehende Datenbank verbessern. (War die erste ) kann jedoch nicht alles abändern was ich da nicht so toll gelöst hab. Daher meine Frage. Würde gern über eine Dialog abfrage (benutzer wird dadurch gezielter geführt)  bestehende Auswahlfelder, bzw ja nein felder befüllen. Das klappt ja auch alles wunderbar. 

Hab nur bei der auswahl der Kalenderwochen im Dialog probleme. Sind ja 52 an der Zahl (die 53 hab ich vernachlässigt)

wie kann ich das lösen? 

let cc := dialog("Kalenderwoche", "KW wählen", ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "Abruch"]);
'KW Leistungsdatum' := cc;

Sieht dann leider so aus, ist also nicht brauchbar. Kann man da einen Zeilenumbruch einbauen oder ein textfeld wo man die kw reinschreiben muß ?

Bildschirmfoto 2021-11-04 um 10.22.34

Danke Michi

7 Antworten

null
    • mirko3
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Stichwort: verschachtelte Dialoge. Etwa so:

    let first := dialog("Kalenderwoche", "KW wählen", ["bis 10", "bis 20", "bis 30", "bis 40", "bis 53"]);
    let second := switch first do
    case "bis 10":
    dialog("Kalenderwoche", "KW wählen", ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"])
    case "bis 20":
    dialog("Kalenderwoche", "KW wählen", ["11", "12", "13", "14", "15", "16", "17", "18", "19", "20"])
    case "bis 30":
    dialog("Kalenderwoche", "KW wählen", ["21", "22", "23", "24", "25", "26", "27", "28", "29", "30"])
    case "bis 40":
    dialog("Kalenderwoche", "KW wählen", ["31", "32", "33", "34", "35", "36", "37", "38", "39", "40"])
    case "bis 53":
    dialog("Kalenderwoche", "KW wählen", ["41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53"])
    end;
    'KW Leistungsdatum' := second

    Sieht aber nach etwas aus, wo ein Schleifenscript Deine linke Maustaste etwas schonen könnte ;-). Mirko

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

    Danke dir Mirko,

    hilft schon mal weiter.

    let myArr := "Rechnungsinformation: " + "
    " + Kunde.Firma + "
    " + Kunde.'Zusatz für Empfänger in PDF' + "
    " + Auftrag + "
    " + 'Leistung in KW';
    let first := dialog("Kalenderwoche", myArr, ["bis 10", "bis 20", "bis 30", "bis 40", "bis 53"]);
    let second := switch first do
    case "bis 10":
    dialog("Kalenderwoche", myArr, ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"])
    case "bis 20":
    dialog("Kalenderwoche", myArr, ["11", "12", "13", "14", "15", "16", "17", "18", "19", "20"])
    case "bis 30":
    dialog("Kalenderwoche", myArr, ["21", "22", "23", "24", "25", "26", "27", "28", "29", "30"])
    case "bis 40":
    dialog("Kalenderwoche", myArr, ["31", "32", "33", "34", "35", "36", "37", "38", "39", "40"])
    case "bis 53":
    dialog("Kalenderwoche", myArr, ["41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53"])
    end;
    'KW Leistungsdatum' := second

    Am einfachsten wäre die KW vorher fest zu legen... ist aber ein Textfeld, da das sich die beschreibung immer ändert.

    Kannst mir bei der Schleife eventuell auf die sprünge helfen?

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

    Wenn ich die Kalenderwoche aus dem Textfeld ziehe kann ich das ja so machen :

    let aa := extractx('Leistung in KW', "\b\d{2}\b");
    let bb := extractx('Leistung in KW', "\b\d{1}\b");
    let cc := if aa then aa else bb end;
    let myArr := "Rechnungsinformation: " + "
    " + Kunde.Firma + "
    " + Kunde.'Nachname oder Zusatz für Empfänger in PDF' + "
    " + Auftrag + "
    " + 'Leistung in KW';
    let dd := dialog("Kalenderwoche", myArr, [cc]);
    'KW Leistungsdatum' := dd

    Die Kalenderwoche befindet sich an unterschiedlichen stellen im Text.. jeder schreibt sie allerdings anders. zb. ( Kw 01 oder 1 ) wie kann ich denn die vorangestellte 0 entfernen wenn sie einer schreiben sollte ? Sonst klappt das nicht mit der zuweisung im Auswahlfeld

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

    bekommt man das mit der Zahlensuche bzw. 0 enfernen besser geschreiben ?

    let aa := extractx('Leistung in KW', "\b\d{2}\b");
    let bb := extractx('Leistung in KW', "\b\d{1}\b");
    let cc := if aa then aa else bb end;
    let dd := replacex(cc, "0", "");
    let myArr := "Rechnungsinformation: " + "
    " + Kunde.Firma + "
    " + Kunde.'Nachname oder Zusatz für Empfänger in PDF' + "
    " + Auftrag + "
    " + 'Leistung in KW';
    let ee := dialog("Kalenderwoche", myArr, [dd, "andere KW wählen"]);
    if ee = dd then
    'KW Leistungsdatum' := ee
    else
    if ee = "andere KW wählen" then
    let myArr := "Rechnungsinformation: " + "
    " + Kunde.Firma + "
    " + Kunde.'Nachname oder Zusatz für Empfänger in PDF' + "
    " + Auftrag + "
    " + 'Leistung in KW';
    let first := dialog("Kalenderwoche", myArr, ["bis 10", "bis 20", "bis 30", "bis 40", "bis 53"]);
    let second := switch first do
    case "bis 10":
    dialog("Kalenderwoche", myArr, ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"])
    case "bis 20":
    dialog("Kalenderwoche", myArr, ["11", "12", "13", "14", "15", "16", "17", "18", "19", "20"])
    case "bis 30":
    dialog("Kalenderwoche", myArr, ["21", "22", "23", "24", "25", "26", "27", "28", "29", "30"])
    case "bis 40":
    dialog("Kalenderwoche", myArr, ["31", "32", "33", "34", "35", "36", "37", "38", "39", "40"])
    case "bis 53":
    dialog("Kalenderwoche", myArr, ["41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53"])
    end;
    'KW Leistungsdatum' := second
    end
    end

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

    mist jetzt entfernt es mir jede 0 

    😡

    • mirko3
    • vor 3 Jahren
    • Gemeldet - anzeigen

    ...

    let dd := number(cc)

    ...

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

    Danke Mirko, funktioniert