Dialog Auswahl
Hilfe,
wie kann ich denn im Dialog die Namen Anzeigen lassen, aber im ergebniss mit der Datensatz Nr weiter arbeiten?
a0 bis a3 soll im Dialog eigentlich als Name angezeigt werden, sofern es einen treffer gibt. Für die weiterverarbeitung benötige ich aber die Datensatz Nr.
let KV := (select 'Aufträge' where bezug = user()).text(Nr);
let a0 := item(KV, 0);
let a1 := item(KV, 1);
let a2 := item(KV, 2);
let a3 := item(KV, 3);
let tex := "Warenbuchung" + "
" + "
" + Artikelbezeichnung + "
" + "
" + "Menge: " + Menge;
let dia := dialog("Auftrag für Buchung wählen", tex, [a0, a1, a2, a3, "Abbrechen"]);
let erg := if dia = a0 then
first(select 'Aufträge' where Nr = number(a0))
else
if dia = a1 then
first(select 'Aufträge' where Nr = number(a1))
else
if dia = a2 then
first(select 'Aufträge' where Nr = number(a2))
else
if dia = a3 then
first(select 'Aufträge' where Nr = number(a3))
end
end
end
end;
Text := text(erg)
5 Antworten
-
jetzt bleibt noch die felder ohne ergebniss "#3" + "#4" im besten fall auszublenden oder mit einem "-" zu versehen.
let KV := (select 'Aufträge' where bezug = user()).Name; let a0 := item(KV, 0); let a1 := item(KV, 1); let a2 := item(KV, 2); let a3 := item(KV, 3); let KV1 := (select 'Aufträge' where bezug = user()).Nr; let a00 := item(KV1, 0); let a11 := item(KV1, 1); let a22 := item(KV1, 2); let a33 := item(KV1, 3); let tex := "Warenbuchung" + " " + " " + Artikelbezeichnung + " " + " " + "Menge: " + Menge; let dia := dialog("Auftrag für Buchung wählen", tex, [a0, a1, a2, a3, "Abbrechen"]); let erg := if dia = a0 then first(select 'Aufträge' where Nr = number(a00)) else if dia = a1 then first(select 'Aufträge' where Nr = number(a11)) else if dia = a2 then first(select 'Aufträge' where Nr = number(a22)) else if dia = a3 then first(select 'Aufträge' where Nr = number(a33)) end end end end; Text := number(erg)
-
Hallo Michi, ich weiß zwar nicht, warum du die Nummer des gewählten Datensatzes am Ende in ein Feld namens 'Text' schreibst, würde generell den Code aber reduzieren und es so versuchen:
let myDA := for i in select 'Aufträge' where Bezug = user() do i.Name end; myDA := array(myDA, ["Abbrechen"]); let myChoice := dialog("Titel", "Text", myDA); let myText := first(select 'Aufträge' where Name = myChoice).number(Nr); Text := myText
Wobei die dialog()-Funktion natürlich sowieso ihre Grenzen hinsichtlich der Darstellung der Schaltflächen hat. Das Dialog-Fenster wächst leider nicht mit Anzahl/Breite der Buttons.
-
Das einzige was mir einfällt ist so ein riesen zweig aufzustellen damit man die max 4 varianten abbilden kann.
Der bezug = user() wird bei click auf den Kartenreiter erzeugt welcher mich zu den Lagerartikeln führt und bei verlassen wieder auf null gesetzt. So kann ich den Datensatz aus der nicht verknüpften tabelle wo ich mich mit dem skript befinde rausfinden. Den Lagerbestand buche ich dann in Lieferscheine und verknüpfe dies mit dem Auftrag von dem ich kam (bezug =user()). Da ich aber im Büro mit 2 instanzen (PC´s) arbeite und im Lager noch einen PC mit meiner instanz habe, muss ich fehler im vorfeld vermeiden. Denn dann kann es sein das ich 3 mal einem datensatz den bezug zugewiesen habe.
let aa := Artikelbezeichnung;
let bb := text(Menge);
let mm := (create Lieferscheine);
mm.(Lieferantenauswahl := 26);
mm.(Menge := number(bb));
mm.('Lager Artikel' := aa);
mm.('Aufträge' := erg)let an := cnt(select 'Aufträge' where bezug = user()); if an = 4 then let KV := (select 'Aufträge' where bezug = user()).Name; let a0 := item(KV, 0); let a1 := item(KV, 1); let a2 := item(KV, 2); let a3 := item(KV, 3); let KV1 := (select 'Aufträge' where bezug = user()).Nr; let a00 := item(KV1, 0); let a11 := item(KV1, 1); let a22 := item(KV1, 2); let a33 := item(KV1, 3); let tex := "Warenbuchung" + " " + " " + Artikelbezeichnung + " " + " " + "Menge: " + Menge; let dia := dialog("Auftrag für Buchung wählen", tex, [a0, a1, a2, a3, "Abbrechen"]); let erg := if dia = a0 then first(select 'Aufträge' where Nr = number(a00)) else if dia = a1 then first(select 'Aufträge' where Nr = number(a11)) else if dia = a2 then first(select 'Aufträge' where Nr = number(a22)) else if dia = a3 then first(select 'Aufträge' where Nr = number(a33)) end end end end; Text := number(erg) else if an = 3 then let KV := (select 'Aufträge' where bezug = user()).Name; let a0 := item(KV, 0); let a1 := item(KV, 1); let a2 := item(KV, 2); let KV1 := (select 'Aufträge' where bezug = user()).Nr; let a00 := item(KV1, 0); let a11 := item(KV1, 1); let a22 := item(KV1, 2); let tex := "Warenbuchung" + " " + " " + Artikelbezeichnung + " " + " " + "Menge: " + Menge; let dia := dialog("Auftrag für Buchung wählen", tex, [a0, a1, a2, "Abbrechen"]); let erg := if dia = a0 then first(select 'Aufträge' where Nr = number(a00)) else if dia = a1 then first(select 'Aufträge' where Nr = number(a11)) else if dia = a2 then first(select 'Aufträge' where Nr = number(a22)) end end end; Text := number(erg) else if an = 2 then let KV := (select 'Aufträge' where bezug = user()).Name; let a0 := item(KV, 0); let a1 := item(KV, 1); let KV1 := (select 'Aufträge' where bezug = user()).Nr; let a00 := item(KV1, 0); let a11 := item(KV1, 1); let tex := "Warenbuchung" + " " + " " + Artikelbezeichnung + " " + " " + "Menge: " + Menge; let dia := dialog("Auftrag für Buchung wählen", tex, [a0, a1, "Abbrechen"]); let erg := if dia = a0 then first(select 'Aufträge' where Nr = number(a00)) else if dia = a1 then first(select 'Aufträge' where Nr = number(a11)) end end; Text := number(erg) else if an = 1 then let KV := (select 'Aufträge' where bezug = user()).Name; let a0 := item(KV, 0); let KV1 := (select 'Aufträge' where bezug = user()).Nr; let a00 := item(KV1, 0); let tex := "Warenbuchung" + " " + " " + Artikelbezeichnung + " " + " " + "Menge: " + Menge; let dia := dialog("Auftrag für Buchung wählen", tex, [a0, "Abbrechen"]); let erg := if dia = a0 then first(select 'Aufträge' where Nr = number(a00)) end; Text := number(erg) end end end end
Content aside
- Status Answered
- vor 2 JahrenZuletzt aktiv
- 5Antworten
- 85Ansichten
-
2
Folge bereits