0

Mit Button Untertabelleneintrag erstellen

Hallo,

ich möchte gerne mit einem Button einen neuen Datensatz in einer Untertabelle erstellen und gleichzeitig mit festgelegten Werten befüllen.

In der Untertabelle 'Getränke Verbrauch' gibt es das Feld "Menge" und eine Verknüpfung zur Tabelle 'Getränke'
Der Button soll nun einen neuen Eintrag erzeugen und direkt die Menge, z.B. "1" hinterlegen und einen festgelegte "Nr" aus der Tabelle 'Getränke' nehmen, z.B. "33"

Ich bekomme die Syntax dafür wieder einmal nicht hin :-(

Vielen Dank im Voraus
Oliver M.

12 Antworten

null
    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

     

    let new := (create 'Getränke Verbrauch');
    new.(Menge := 1);
    new.('Getränke':= 33)

     

    Rufst Du aus 'Getränke' auf und willst den Datensatz von dem Du aufrufst direkt verknüpfen, dann:

     

    let my := this;
    let new := (create 'Getränke Verbrauch');
    new.(Menge := 1);
    new.('Getränke':= my)

     

    lg, Torsten

    • Michael_Reichardt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Also wird der neue DS mit -> new.('Getränke':= my) verknüpft?

    • Michael_Reichardt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    bei mir geht das leider nie?

    • Michael_Reichardt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    jetzt hab ich verstanden, sorry

    • CitizenDeveloper
    • Oliver_meerkamp
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten,

    vielen Dank, damit kann ich super arbeiten! :-)

    PS:
    Man kann es nicht oft genug betonen:

    Meine Datenbank funktioniert nur weil es dieses Forum gibt!

    Dankeschön!

    • CTRAVEL
    • vor 5 Jahren
    • Gemeldet - anzeigen

    moin, ich würde mich der Frage anschließen, da ich etwas Ähnliches suche. Die Frage wäre, kann man z.B. mit einem 2. Button diesen getätigten Eintrag in der Untertabelle auch wieder löschen?
    Gruß
    Thomas

    • CTRAVEL
    • vor 5 Jahren
    • Gemeldet - anzeigen

    (Es kann auch der gleiche Button, mit 2 verschiedenen Zuständen / Beschriftungen sein)

    • Team Lead Customer Service
    • joerg
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Wenn du den letzten Eintrag in einer (Unter-)tabelle suchst und löschen möchtest, kannst du die Formel 

     

    delete last(select Tabelle)

     

    benutzen. 

    Gruß, Jörg

    • CTRAVEL
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Jörg,
    ok, Danke.

    Aber was wäre, wenn es nicht der Letzte ist? Der müsste dann ja anhand der ID identifiziert werden.
    Gruß
    Thomas

    • Team Lead Customer Service
    • joerg
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Das kommt darauf an mit wievielen Leuten ihr an der Datenbank arbeitet und ob es möglich wäre, dass gleichzeitig noch ein weiterer Datensatz erstellt wird. Dann wäre es in Tat schwierig diese beiden (oder mehr) Datensätze auseinander zu halten. Aber wenn ich deine Frage richtig verstanden habe, wolltest du den gerade erstellten Datensatz mit einem Button wieder löschen und das wäre dann der letzte. 

    Insgesamt ist es schon möglich bestimmte Datensätze aus den Untertabellen zu löschen, man muss sich nur vorher überlegen, wodurch diese(r) Datensätze identifiert werden sollen.

    Gruß, Jörg

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Wenn man schon mit der Untertabelle Arbeitet dann würde ich ohne Select arbeiten:

    delete last(Untertabelle);

    noch sicherer ist es, wenn man ein verstecktes Zusatzfeld einrichtet (Nummerfeld). Nennen wir dieses Last_ID.

    Dann beim Anlegen neuen Datensatz in der Untertabelle:

    ---

    let my:=this;

    let new:=create Untertabelle;

    new.Haupttabelle:=my;

    new.Datum:=today();

    .

    .

    my.Last_ID:=number(new.Nr)

    ----

    Jetzt kann man noch ein Button Letzten Eintrag löschen anlegen:

    ---

    delete record(Untertabelle,Last_ID);

    Last_ID:=null

    ---

    und bei der Sichtbarkeit des Buttons würde ich dann so schreiben:

    ---

    Last_ID

    ---

    Leo

    • CTRAVEL
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Jörg & Leonid,
    danke für den Input. Ich bin noch dabei das zu testen und hinzubekommen. Ich muss noch verstehen wie das funktioniert. Es wäre erstmal nur 1 Person, die an der Datenbank arbeitet. Der Gedanke war, auch zu einem späteren Zeitpunkt diesen Eintrag noch löschen zu können. Also auch dann, wenn in der Zwischenzeit weitere Einträge erfolgt sind.

    Gruß
    Thomas 

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 12Antworten
  • 4890Ansichten