Dynamisches Mehrfachauswahlfeld auslesen
Ich habe ein dynamisches Auswahlfeld, welches je nach Projekt völlig unterschiedliche Elemente enthält. Für jedes Element, das angewählt wird, benötige ich einen Record in einer anderen Tabelle.
Das dyn. Auswahlfeld heisst "CR_Produktliste", in der Tabelle "CR_Produkte" sollen diese eingetragen werden.
Das Auslesen habe ich mir in einer for-Schleife wie folgt vorgestellt:
let me := this;
for prd_cnt in me.CR_Produktliste do
let myanswer := dialog("Produkt-Liste erstellen", text(prd_cnt) + " wird eingetragen... ", ["Ja", "Abbrechen"]);
if myanswer = "Ja" then
let CR_Prod_Item := (create CR_Produkte);
CR_Prod_Item.(
Projekt_CR := me;
CR_Prd_Bezeichnung := text(prd_cnt)
)
end;
end
Die for-schleife wird bei mehr als 3 ausgewählten Elementen max 3 durchlaufen, statt so oft wie Elemente ausgewählt, der Inhalt von prd_cnt besteht aus unterschiedlich vielen Einträgen.
Hat jemand eine Idee, was da falsch ist? Danke.
9 Antworten
-
Hi Miklos. Mal sehen, was ich alles falsch verstanden habe;-)
Für die Durchführung ist wichtig zu wissen, wie die Tabelle heißt, aus der das dynamische Mehrfachauswahlfeld die Werte bezieht. Ich nenne sie hier DMFAF-Tabelle. Und heißt denn dreimal durchlaufen, dass Du nur die ersten drei Werte haben willst?
mal ein Beispiel:
ary= Array aller Werte des DMFAF
threeAry=die ersten drei Werte
Mirko
let me:= this; let ary := numbers(CR_Produktliste); let threeAry := for i in range(0, 3) do item(ary, i) end; for j in threeAry do (create CR_Prd_Bezeichnung).( Projekt_Cr := record(DMFAF-Tabelle,j).text(prd_cnt); Projekt_CR := me) end
-
Ah, ja. Dann müßte es doch aber so gehen.
let me:= this; let ary := numbers(CR_Produktliste); for j in ary do (create CR_Prd_Bezeichnung).( Projekt_Cr := record(DMFAF-Tabelle,j).text(prd_cnt); Projekt_CR := me) end
-
Ich bau das grad mal nach...
Was mit "Projekt_CR := me" erreicht werden soll ist mir nicht klar geworden...
Willst Du damit eine Verknüpfung setzen? -
Miklos Toth
Ich habe hier dieses Skript, dass führt die von Dir ganz oben gewünschten Aktionen aus:
Als Ausgangsbasis habe ich deins genommen, das hat bei mir schon in deiner Version mehr als 3 Records erzeugt!let me := this; let xcx := numbers(CR_Produktliste); let myanswer := dialog("Produkt-Liste erstellen", text(CR_Produktliste) + " wird eingetragen... ", ["Ja", "Abbrechen"]); if myanswer = "Ja" then for prd_cnt in xcx do let CR_Prod_Item := (create CR_Produkte); CR_Prod_Item.( Projekt_CR := me; CR_Prd_Bezeichnung := first((select DMFAWF)[Nr = prd_cnt].'Einträge') ) end end
Die Dialogbox hab ich über die Schleife gesetzt, sonst muss man ja x-mal JA klicken.
hier noch die DB dazu:
Content aside
- Status Answered
- vor 2 JahrenZuletzt aktiv
- 9Antworten
- 265Ansichten
-
2
Folge bereits