Mehrfachauswahlfeld legt Datensätze in Untertabelle an
Ich habe eine Tabelle (News), die ein Mehrfachauswahlfeld (mit folgenden Feldern Wert1, Wert2, Wert3) enthält. Die Tabelle (News) ist mit einer anderen Tabelle verknüpft (ToDo). Wenn man im Mehrfachauswahlfeld einzelne Werte auswählt, sollen in der Untertabelle einzelne Datensätze angelegt werden. Wie kann ich dies umsetzten? Im Mehrfachauswahlfeld müsste vermutlich das Feld nach Änderung folgendes Script ausführen gefüllt werden. Allerdings bräuchte ich etwas Unterstützung zur erforderlichen Syntax...
6 Antworten
-
Hallo Eichelfr,
etwa so:
---
let me:=this;
for i in chosen(me.Mehrfachauswahlfeld) do
let new:=create ToDo;
new.News:=me;
new.Wert:=i
end
---Leo
-
Hallo Leo, vielen Dank für die Unterstützung. Das funktioniert auch soweit. Ist es möglich, dass ich in den Code noch prüfe, ob das ToDo bereits angelegt wurde und ich lediglich den Datensatz anlege, sofern er noch nicht besteht. Jetzt verhält es sich so, dass diese Prüfung nicht durchgeführt wird und dadurch versehentliche Doppeleingaben nicht abgefangen werden... Frank
-
Hallo Frank,
---
let me:=this;
for i in chosen(me.Mehrfachauswahlfeld) do
if cnt(me.ToDo[Wert=i])=0 then
let new:=create ToDo;
new.News:=me;
new.Wert:=i
end
end
---
Dabei ist ToDo in der dritten Zeile der Name der Untertabelle ToDo wie der auch im Formular steht.
Leo
-
Hallo Leo,
vielen Dank - auch das funktioniert einwandfrei - Syntax habe ich auch halbwegs verstanden. Jetzt gibt es nur noch ein Thema, was ich vergessen habe. Kann ich den (irrtümlich) angelegten Datensatz in der Untertabelle auch löschen, sofern ich die entsprechende Checkbox im Mehrfachauswahlfeld deaktiviere? Wäre super, wenn da ebenfalls klappen würde.
Frank
-
Hallo Frank,
---
let me:=this;
for j in me.ToDo do
if not chosen(me.Mehrfachauswahlfeld, j.Wert) then
delete j
end
end;
for i in chosen(me.Mehrfachauswahlfeld) do
if cnt(me.ToDo[Wert=i])=0 then
let new:=create ToDo;
new.News:=me;
new.Wert:=i
end
end
---
Leo
-
Top Unterstützung, danke lieber Leo - funktioniert einwandfrei (wie nicht anders zu erwarten war)! Frank
Content aside
- vor 4 JahrenZuletzt aktiv
- 6Antworten
- 609Ansichten