0

Verknüpfung automatisch vorbelegen

Ich habe ein Formluar (Tabelle) mit "Besprechungen". Dort gibt es eine Verknüpfung zur Tabelle "Kontakte". Mit Anklicken von dieser Verknüpfung kann ich dann, wie gewünscht, Kontakte zur Besprechung dazufügen. So weit so gut.
Wie kann ich nun diese Verknüpfung mit ein oder zwei Kontaken "vorbelegen", damit diese automaitsch beim Erstellen einer neuen Besprechung (neuer Datensatz) bereits verknüpft sind?

2 Antworten

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

    Hallo R.J., nach welchem Kriterium sollen die beiden Kontakte denn ausgewählt werden? Oder sind es immer die selben? Also bspw. immer Herr Meier und Frau Müller? Dann könnte man die Verknüpfung folgendermaßen realisieren (bei einer 1:N-Verknüpfung von 'Besprechungen' zu 'Kontakte').

     

    let me := this;
    let myK1 := first(select Kontakte where Name = "Meier");
    myK1.(Besprechungen := me);
    let myK2 := first(select Kontakte where Name = "Müller");
    myK2.(Besprechungen := me);

     

    Allerdings macht das relativ wenig Sinn, weil Herr Meier und Frau Müller nur an einer Besprechung teilnehmen könnten. Beim Anlegen einer neuen Besprechung würden sie aus der vorherigen entfernt. Um das zu verhindern und sowohl einer Besprechung mehrere Kontakte zuordnen zu können als auch einem Kontakt mehrere Besprechungen, würde eine N:M-Verknüpfung benötigt. Dazu wäre eine dritte "Hilfstabelle" erforderlich, die jeweils N:1 mit den Tabellen 'Kontakte' und 'Besprechungen' verknüpft ist (die direkte Verknüpfung der beiden Tabellen entfällt). Angenommen, diese Hilfstabelle hieße 'KoBe', dann könnte der Code für den "Trigger bei neuem Datensatz" in der Tabelle 'Besprechungen' folgendermaßen aussehen (in einfachster Form):

     

    let me := this;
    let myK1 := first(select Kontakte where Name = "Meier");
    let newK1 := (create KoBe);
    newK1.(Kontakte := myK1);
    newK1.(Besprechungen := me);
    let myK2 := first(select Kontakte where Name = "Müller");
    let newK2 := (create KoBe);
    newK2.(Kontakte := myK2);
    newK2.(Besprechungen := me)

    • orange_ship.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Guten Morgen planox.pro

    Ich habe das schon mit einer Hilfstabelle realisiert, aber nicht erwähnt. Sorry!
    Die zweite Variante funktioniert bestens.
    Vielen Dank für die rasche Hilfe.

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 2Antworten
  • 227Ansichten