0

Im Dashboard mit Button neuen Datensatz erstellen

Hallo zusammen,

anbei eine bsp Datenbank, um es besser erklären zu können.

Ich habe in Tabelle Dashboard eine Ansicht der Tabelle Tabelle. Mit dem Button neuen Messwert hinzufügen +

soll ein neuer Datensatz in Tabelle Messungen erstellt werden und dem Datensatz des heutigen Tages der Tabelle Tabelle hinzugefügt werden.

let new := (create Messungen);
popupRecord(new)

erstellt einen neuen Datensatz, aber wie wird es dem jeweiligen Datensatz (immer das heutige Datum) der Tabelle Tabelle zuggeordnet?

ich habe es u.a. mit

let new := (create Messungen);
new.Tabelle1.(Datum := today());
popupRecord(new)

versucht, aber es hat nicht geklappt. Hat jemand eine Idee, wie man das richtig umsetzt?

Vielen Dank.

Gruß Kruna

7 Antworten

null
    • truthein
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Kruna
    Es gibt ja einen Bezug von «Messungen» in «Tabelle», das Feld in «Messungen» heißt «Tabelle1». Ich denke, das muss gesetzt werden, etwa so in der Art:
     

    let myDate := today();
    let derBezug := first(select Tabelle where Datum = myDate);
    let new := (create Messungen);
    new.(Tabelle1 := derBezug);
    popupRecord(new)
    

    vielleicht ist das das, was du willst ...

      • Kruna
      • vor 1 Jahr
      • Gemeldet - anzeigen

      vielen Dank für Deine Lösung. Hierbei stelle ich jedoch fest, dass ich quasi jeden Tag zunächst einen Datensatz in 'Tabelle' erstellen muss, damit das Script funktioniert. Also habe ich create Tabelle an den Anfang gesetzt und so funktioniert es wie gewollt:

      create Tabelle;
      let myDate := today();
      let derBezug := first(select Tabelle where Datum = myDate);
      let new := (create Messungen);
      new.(Tabelle1 := derBezug);
      popupRecord(new)
      

      Vielen Dank nochmals.

      Gruß Kruna

      • truthein
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      schön, dass es klappt. Danke für den Dank :-)
      (Mir kam es so vor, wie wenn du in der «Tabelle» vorweg alle Tage anlegen wolltest, so dass der Datensatz für den Bezug a priori existiert hätte.)

      Du legst nun bei jeder Messung  – = jeder Buttonbetätigung – einen neuen Datensatz in «Tabelle» an, wenn ich das richtig sehe, das ist vielleicht nicht das, was du möchtest. Ich schlage vor, dass du das nur machst, wenn der Bezugsdatensatz noch nicht existiert, so a la:
       

      if count(select Tabelle where Datum = myDate) = 0 then
          create Tabelle
      end;

      Mir fällt da noch was auf, weil ich verstehe so von Ferne die «Tabelle» nicht: ich weiss nicht, was du mit der «Tabelle» vorhast, je nachdem ist die «Tabelle» mit den Tagen vielleicht gar nicht notwendig? Das Datum deiner Messung ist ja eine Eigenschaft dieser Messung und wird mit ihr simultan erhoben. Das Anzeigen einer Teilmenge von Messungen (mit bestimmten Daten zB.) wäre dann eine Frage des Filterns in einer Anzeige, in der man mit zB. select( Tabelle where [Bedingung]) Teilmengen anzeigen und gruppieren könnte.

      • Kruna
      • vor 1 Jahr
      • Gemeldet - anzeigen

      oh, Du hast ja soooo recht! Beim Lesen Deines Posts ist mir aufgefallen, dass mit create Tabelle, jedes mal der Datensatz mit dem heutigen Datum erstellt wird. Das soll so nicht sein. Tausend Dank für den Hinweis. Das hatte ich im ertsen Moment nicht bedacht und so, wie Du das beschrieben hast, ist es gedacht. Jetzt funktionietr es so, wie es soll.😀

      Tabelle Messungen ist ja mit Tabelle Tabelle verknüpft. Vielleicht ist mein Ansatz per se nicht ganz korrekt umgesetzt, aber es geht in ertster Linie darum, Blutdruckwerte zu kontrollieren bzw wird der Blutdruck mehrmals am Tag gemessen (dafür die Tabelle Messungen). In der Tabelle Tabelle sehe ich dann die Messungen eines Tages zusammengefasst und weitere Info, wie zB Durchschnitt. Desweiteren möchte ich die Tabelle Tabelle (mit der Zeit) mit weiteren Infos zum Tagesablauf erweitern.

      Das Anzeigen einer Teilmenge von Messungen (mit bestimmten Daten zB.) wäre dann eine Frage des Filterns in einer Anzeige, in der man mit zB. select( Tabelle where [Bedingung]) Teilmengen anzeigen und gruppieren könnte.

      Uii, entschuldige, aber ich habe nicht genau verstanden, wie Du das meinst.

       

      Gruß

      Kruna

    • truthein
    • vor 1 Jahr
    • Gemeldet - anzeigen
    Kruna said:
    Uii, entschuldige, aber ich habe nicht genau verstanden, wie Du das meinst.

    -> wenn du in einer anderen Tabelle - wie zB. dem «Dashboard» - Messungen anzeigen wolltest, die in einem bestimmten Datumsbereich vorgenommen wurden, dann kann das ja in einer *Anzeige* an sich realisiert werden: du gibst bei Definition der Anzeige an, was sie anzeigen soll: so a la «select Messungen where Datum >= [Anfangsdatum] and Datum <= [Enddatum]», so in der Art. Es braucht nur dazu keine weitere Tabelle. (Ich unterscheide also zwischen dem <Erheben von Daten> und dem Layout von <Anzeigen von Daten>.)

    Da du aber eine Tabelle mit noch anderen, zu den Messungen unabhängigen Tages-Daten bauen willst, so ergibt das dann Sinn, diese Tabelle mit den Tagesdaten zu machen und in Beziehung zu den Messungen zu setzen.

     

    Kruna said:
    Jetzt funktionietr es so, wie es soll

     Bingo!

    Gruss zurück und schönes Wochenende

      • Kruna
      • vor 1 Jahr
      • Gemeldet - anzeigen

      vielen Dank für die Erklärung :-)

      Eine gute und sinnvolle Idee ist es auch, Messungen in einem bestimmten Zeitraum anzeigen zu lassen. Das werde ich auf jeden Fall mit einbauen. Danke für den Impuls 👍

       

      wünsche noch einen angenehmen Sonntag.

      Gruß Kruna

    • Heinrich Frey Maschinenbau GmbH
    • Christian_Rott
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Ich habe mir mal deine Lösung angeschaut weil ich zZt auch eine solche Lösung für mich suche. Ich habe versucht diese nachzubauen aber bin da nicht wirklich weiter gekommen.

    Hätte du evtl. diese Lösung damit ich mir das einmal anschauen kann wo mein Fehler liegt?

    Grüße

    Christian