0

Laufende Nr. in Untertabelle soll wieder mit 001 starten ?

Bin Anfänger (mit der Ninox-App) und baue mir gerade eine Hausverwaltungsdatenbank.

Ich habe eine Haupt-Tabelle „30-OBJEKT“ und eine verknüpfte Untertabelle
„31-EINHEITEN“. Jede Tabelle hat ein eigenes Datenfeld „No“ für die laufende Nr. dieses wird in der jeweiligen Tabelle über den Trigger bei neuem Datensatz befüllt.

Mein Trigger in Tabelle „30-OBJEKT“
let LetzteNr := max((select '30-OBJEKT').No);'
let NeueNr := number(LetzteNr) + 1;
No := format(NeueNr, "0000")

Sobald ich ein neues Objekt in der Tabelle „30-OBJEKT“ angelegt habe und ich
danach die erste Wohneinheit anlegen will, soll das Feld „No“ in der Untertabelle
„31-EINHEITEN“ wieder mit 001 starten. Macht er aber nicht (er zählt weiter)?

Mein Trigger in Tabelle „31-EINHEITEN“

let LetzteNr := max((select '31-EINHEITEN').No);
let NeueNr := number(LetzteNr) + 1;
let myOBJ := '30-OBJEKT'.No;
No := format(NeueNr, "000")

Was muss ich an dem Trigger ändern?
Ich danke Euch im voraus!

8 Antworten

null
    • Torsten_Stang.1
    • vor 1 Jahr
    • Gemeldet - anzeigen

    vorbehaltlich der korrekten Bezeichnungen für die Verknüpfungen würde ich tippen:

    let LetzteNr := max(('30-OBJEKT'.'31-EINHEITEN').No);
    let NeueNr := number(LetzteNr) + 1;
    let myOBJ := '30-OBJEKT'.No;
    No := format(NeueNr, "000")
    
    • info.51
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Torsten

    danke für Deine schnelle Antwort. Ninox fängt nur richtiger weise mit  1 an zählt aber dann wenn weitere Einträge in Tabelle "31-EINTRÄGE" hinzukommen nicht mehr weiter hoch?

      • Torsten_Stang.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Info Tabelle "31-EINTRÄGE"?? - ich nehme an, Du meinst '31-EINHEITEN'? Das von mir in den Ring geworfene Skript setzt voraus, dass eine Verknüpfung zu '30-OBJEKT' existiert.

    • info.51
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Danke ja die Verknüfung (1:N) existiert bereits ! Ninox zählt warum auch immer nicht weiter?

      • Torsten_Stang.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Info der einzelne Datensatz aus 'Einheiten' muss bereits zu einem Datensatz aus 'Objekt' verknüpft sein, ist er das nicht, wird das Skript immer 0 bei "LetzteNr" ermitteln und demzufolge korrekt mit "001" loslegen.

      Kannst Du Deine DB mit Dummy-Daten zur Verfügung stellen? Evtl. hakt es tatsächlich nur an unterschiedlicher Auffassung bzgl. des Datenmodells...

    • info.51
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Torsten,

    zunächst vielen Dank für Dein Hilfsangebot!
    Ich habe meine DB (in reduzierter Form) hier beigefügt.

    Nach der Auswahl des betreffenden Objektes klicke ich auf das Register „Einheiten“ dort erscheinen dann die bereits vorhandenen Wohneinheiten passen zu dem Objekt.

    Sobald ich über den Button eine weitere Wohneinheit hinzufügen will, öffnet sich das Formular und sollte dort mit der nächsten „No“ (vorhandene +1) einen neuen Datensatz anlegen.

    Weiß der Himmel warum das mit der nächsten „No“ nicht funktioniert?

    Grüße Werner

      • Torsten_Stang.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Info Okay, Fehler bzw. Problem gefunden. Du hast die Nummerierung als Trigger bei Datensatz-Erstellung. Im Script des Button in Einheiten existiert die Verknüpfung zur Haupttabelle aber noch nicht.

      Ich hab das "Trigger bei neuem Datensatz" bei '31-EINHEITEN' rausgenommen und die Nummerierung in das Buttonscript "Neue Einheit" übernommen:

      let myID := this;
      let LetzteNr := max('31-EINHEITEN'.No);
      let NeueNr := number(LetzteNr) + 1;
      let myRec := (create '31-EINHEITEN');
      myRec.(
          '30-OBJEKT' := myID;
          No := format(NeueNr, "000")
      );
      popupRecord(myRec)

      https://www.dropbox.com/s/dxc3774hlvbwbgi/HV-Test%20rev1.ninox?dl=0

    • info.51
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Torsten

    tausend Dank für deine schnelle Hilfe.
    Bin Anfänger und habe noch so meine Probleme mit Ninox. Daher suche ich Kontakte zu Leuten wie Dich.

    Grüße und nochmals Danke

Content aside

  • vor 1 JahrZuletzt aktiv
  • 8Antworten
  • 55Ansichten
  • 2 Folge bereits