0

Unlink Datensatz

Hallo,

ich habe eine DB, die vereinfacht wie folgt aufgebaut ist:
1. Tabelle "Mitarbeitende" mit Mitarbeiter:innen
2. Tabelle "Kunden" mit Kund:innen
3. Tabelle "GrätzlLog" als Formular, über das die Doku steuerbar ist.

Im GrätzlLog habe ich:
- ein Beziehungsfeld "Mitarbeitende" von GrätzlLog zu Mitarbeitende (1:N): hier kann eine aktuell zuständige Person ausgewählt werden
- ein Beziehungsfeld "Person" von GrätzlLog zu Kunden (N:1): hier kann ein:e Kund:in ausgewählt werden

Bedingung:
um vollständige Daten zu erhalten, darf im Feld Person nur dann etwas stehen, wenn auch eine mitarbeitende Person ausgewählt wurde. (das habe ich gelöst, idem ich auf das Feld "Kunden" eine "schreiben, wenn"-Bedingung gepackt habe (number(Mitarbeitende) > 0)

Zudem soll sichergestellt sein, dass der Inhalt des Feldes Person automatisch "geleert" wird, wenn keine mitarbeitende Person ausgewählt ist (weil die Person z.b. wieder entfernt wurde). Dazu habe ich einen funktionierenden Button mit dem Code: 

if number(Mitarbeitende) = 0 then
    Person := 0
end

Problem: 
was nicht funktioniert ist, dass ich die Ausführung des Buttons/das Leeren der Beziehung im Feld Person automatisch/mit Trigger lösen möchte, sobald sich der Status im Feld Mitarbeitende auf null ändert

7 Antworten

null
    • Heinrich Frey Maschinenbau GmbH
    • Christian_Rott
    • gestern
    • Gemeldet - anzeigen

     Hier wäre es hilfreich wenn du eine Dummy Datenbank reinstellst. Ansonsten würde es evtl gehen wenn du bei der Auswahl des Mitarbeiter nach Änderung das Feld Person auf null setzt

    • + Maßanzug statt Massenware +
    • RonaldP
    • gestern
    • Gemeldet - anzeigen

    Moin  ,

    wie Christian schon sagt, das kannst du über den "Trigger nach Änderung" in der Beziehung Mitarbeitende direkt per Skript machen:
     

    if not Mitarbeitende then Person := 0 end
    

     VG Ronald

    • Samuel
    • gestern
    • Gemeldet - anzeigen

    hallo, danke für die rückmeldungen,
    ich hab hier mal eine mini-db mit meinem problem erstellt. 

    ich habe auch schon versucht den trigger für das event nicht in mein formular zu legen, sondern in das beziehungsfeld in der tabelle Mitarbeitende. das funktioniert allerdings auch nur so halb. jetzt wird feld Person unlinked, wenn ich mitarbeitende switche (beim unlinken passiert noch nichts, erst wenn neuerr mitarbeitende:r ausgewählt wird)
     

      • Ninox-Projekte für KMU
      • planoxpro
      • vor 22 Stunden
      • Gemeldet - anzeigen

       

      Bei dem Verknüpfungsfeld 'mitarbeitende' i der Tabelle 'formular'' handelt es sich um eine 1:-N-Verknüpfung, das heißt, es können hier mehrere Mitarbeitende angegeben werden. Aus diesem Grund gibt es bei 1:N-Verknüpfungen jedoch keinen "Trigger nach Änderung", und auch ein Änderungstrigger auf Datensatzebene würde bei einer Änderung einer 1:N-Verknüpfung nicht ausgelöst.

      Und da die Verknüpfung der Mitarbeitenden zum Formular nur durch Lösen der Verknüpfung entfernt werden kann, würde auch ein Änderungstrigger im Feld 'formular' der Tabelle 'mitarbeitende' nichts bringen.

      Mit dem Button funktioniert es natürlich, aber ansonsten sehe ich gerade keine Möglichkeit, den Vorgang zu automatisieren. Wobei ich mich frage, was genau mit dieser etwas seltsamen Verknüpfungs-Konstellation abgebildet werden soll.

      Ich habe übriges mal ein kleines Tutorial zu 1:N- und N:1-Verknüpfungen gemacht, falls du dich da mal einlesen willst:

      https://forum.ninox.de/t/p8h0t0r/einsteiger-tutorial-zu-verknupfungen-in-ninox

      • + Maßanzug statt Massenware +
      • RonaldP
      • vor 21 Stunden
      • Gemeldet - anzeigen

       ,

      ah, jetzt verstehe ich.
      Mit etwas Knobelei habe ich es in der Verknüpfung des einzelnen Mitarbeitenden realisiert.
      Es ist allerdings ein zusätzliches Feld als Zwischenspeicher nötig.

      Einfacher wäre es m.E. statt dieser Art der Verknüpfung mit einer dynamischen Mehrfach-Auswahl zu arbeiten. Ich hab das mal mit eingebaut.
      Hier die DB dazu.

      VG Ronald

      • Samuel
      • vor 20 Stunden
      • Gemeldet - anzeigen

       

      im vollausbau ist das ganze eine startseite für eine beratungsdoku. 
      ein:e mitarbeiter:in "meldet sich an", dann kommen den tag über verschiedene personen in die beratung und für diese wird dann ein beratungsfall inkl. doku angelegt. 

      eine person kann von verschiedenen (in der regel einzelnen) personen beraten werden. theoretisch auch von mehreren. die infos zur beratenen person und den berater:innen wird dann im beratungsfall abgelegt. inkl. doku und co. 

      die idee diese infos (berater:in, klient:in) in der startseite als verknüpfung abzulegen hat damit zu tun, dass die beratende person dann nicht bei jeder beratung neu statische daten (ihre person, den beratungsstandort etc.) eingeben muss, sondern nur variable daten zur beratung.

      eigentlich würde mir an der stelle aber vermutlich auch auswahlfeld oder eine mehrfachauswahl reichen, die auf die tabelle mitarbeitende zeigt ... wenn ich so nachdenke ^^

      • Samuel
      • vor 20 Stunden
      • Gemeldet - anzeigen

       
      danke ... ich schau mir das morgen gleich mal an :)

Content aside

  • vor 20 StundenZuletzt aktiv
  • 7Antworten
  • 44Ansichten
  • 5 Folge bereits