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ß ?
Danke Michi
7 Antworten
-
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
-
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' := secondAm 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?
-
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' := ddDie 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
-
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 -
mist jetzt entfernt es mir jede 0
-
...
let dd := number(cc)
...
-
Danke Mirko, funktioniert
Content aside
- vor 3 JahrenZuletzt aktiv
- 7Antworten
- 228Ansichten