0

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

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Pro BoutiquenFonds GmbH
    • Eichelfr
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Pro BoutiquenFonds GmbH
    • Eichelfr
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Pro BoutiquenFonds GmbH
    • Eichelfr
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Top Unterstützung, danke lieber Leo - funktioniert einwandfrei (wie nicht anders zu erwarten war)! Frank