0

Formular über Befehltsschaltfläche öffnen und automatisch einen Wert in ein dortiges Feld eintragen

Hallo,

ich habe das Formular "Buchungsmenü", darin enthalten ist eine Tabelle der Buchungsübersicht und eine Befehlsschaltfläche "Neue Buchung".

Wenn ich auf die Befelsschaltfläche klicke soll das Formular "Buchung" aufgehen und dort soll das Feld "XYZ" automatisch mit der Kundennummer des Buchenden befüllt werden.

Der Datensatz selber soll erst erstellt werden wenn ich auf das Befelsfeld "Buchung speichern" klicke und alle Pflichtfelder ausgefüllt sind.

Leider weiß ich nicht wie ich das anstellen soll.

Ich hoffe mir kann jemand helfen.

4 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Martin, ich nehme an, "Buchung" ist eine eigene Tabelle. Um aus der aktuellen Tabelle heraus das Formular einer anderen Tabelle zu öffnen, muss man immer einen Datensatz angeben, der im Formular angezeigt werden soll. Das kann natürlich ein neuer, soeben per create() erzeugter und deshalb noch leerer Datensatz sein. Man kann aber kein leeres Formular aufrufen und erst später als Datensatz speichern.

     

    Es stellt sich außerdem die Frage, wo die Kundennr. herkommt. Wenn ich mal davon ausgehe, dass sie sich in der Tabelle "Buchungsmenü" befindet und auch in der Tabelle "Buchung" so heißt, dann könnte die Neuerstellung der Buchung mit autmatischer Übernahme der Kundennummer folgendermaßen funktionieren:

     

    let myKunde := Kundennr;
    let neueBuchung := (create Buchung);
    neueBuchung.(Kundennr := myKunde);
    popoupRecord(neueBuchung)

     

    Das mit den Pflichtfeldern musst du anders regeln, z. B. durch optische Kennzeichnung über "Ja" bei "Eingabe erforderlich" in den Feldoptionen.

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    ... in der letzten Zeile sollte es

     

    popupRecord(neueBuchung)

     

    heißen ;-)

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Haha, "popo up" ist aber auch nicht schlecht ... :)  Gut aufgepasst, danke für den Hinweis!

     

    Was mir aber noch als Möglichkeit eingefallen ist: Wenn es nicht zu viele sind, könnte man die Pflichtfelder schon der Tabelle "Buchungsübersicht" erfassen und ggf. an den neuen Datensatz übergeben.

     

    Der Button "Neue Buchung" könnte bspw. bewirken, dass die betreffenden Felder sowie eine weitere Schaltfläche namens "Buchung speichern" (o. ä.) eingeblendet werden. Mit dieser zusätzlichen Schaltfläche könnte man überprüfen, ob alle Pflichtfelder ausgefüllt wurden und ggf. erst dann den neuen Datensatz in der Tabeller "Buchungen" anlegen und öffnen.

     

    Angenommen, es gäbe neben der Kundennummer noch drei weitere Pflichtfelder, die ich der Einfachheit halber mal so nenne, dann könnte der code des Buttons "Buchung speichern" bspw. so aussehen (oder so ungefähr):

     

    if Pflichtfeld1 and Pflichtfeld2 and Pflichtfeld3 then
        let me := this;
        let neueBuchung := (create Buchung);
        neueBuchung.(
            Kundennr := me.Kundennr;
            Pflichtfeld1 := me.Pflichtfeld1;
            Pflichtfeld2 := me.Pflichtfeld2;
            Pflichtfeld3 := me.Pflichtfeld3;
        );
        popupRecord(neueBuchung)
    else
        alert("Es müssen alle Felder ausgefüllt werden!")
    end

    • FVS GmbH
    • FVS_GmbH
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Super, vielen Dank, es klappt.