0

Primäre Mailadresse aus Untertabelle abfragen

Moin zusammen,

ich fuchse mich gerade in ninox rein und komme mit einer Abfrage aus einer Untertabelle nicht weiter.

Das Szenario ist folgendes:

In der Haupttabelle = "Person" habe ich eine Untertabelle = "Mail" eingerichtet, in der ich die Mailadressen der Personen eintrage. In der Untertabelle ist zu jeder hinterlegten Mailadresse auch eingetragen, ob es sich um die primäre Mailadresse handelt.

In einem Formelfeld in der Haupttabelle würde ich gerne die primäre Mailadresse der jeweiligen Person aus der Untertabelle abfragen. Wie mache ich das am besten?

Ich habe es mit select versucht, kriege dann aber nur ein array aus allen primären Mailadressen aus der Untertabelle. Ich möchte aber nur die primäre Mailadresse der jeweiligen Person anzeigen lassen.

Ich danke euch!

Fatih

8 Antworten

null
    • Heinrich Frey Maschinenbau GmbH
    • Christian_Rott
    • vor 4 Tagen
    • Gemeldet - anzeigen

    Moin Fatih, so ohne das Datenmodell zu kennen sollte es über ein Formelfeld gehen.

    wie ist die Bezeichnung für die Primäre Mail Adresse in der Tabelle Mail?

    • Heinrich Frey Maschinenbau GmbH
    • Christian_Rott
    • vor 4 Tagen
    • Gemeldet - anzeigen

    Eine Dummy Datenbank wäre hier auch hilfreich dann kann man das Datenmodell anschauen

    • Heinrich Frey Maschinenbau GmbH
    • Christian_Rott
    • vor 4 Tagen
    • Gemeldet - anzeigen

    Im Formelfeld eintragen Mail."hier das Feld wo die primäre Mail drin steht"

    dann sollst du diese in der Tabelle Personen auch sehen

    • Heinrich Frey Maschinenbau GmbH
    • Christian_Rott
    • vor 4 Tagen
    • Gemeldet - anzeigen

    Hier habe ich bei einer Person drei Email Adressen hinterlegt und im Formelfeld dann die jeweilige Formel eingetragen

    • info.95
    • vor 4 Tagen
    • Gemeldet - anzeigen

    Moin Christian, danke dir für die Erklärung. Ich hatte es bisher mit einem Formeldfeld in der Haupttabelle und einer SELECT Abfrage ausprobiert. Da kriege ich aber nur ein array zurück.

    Ich liefere noch mal das Modell nach:

    Haupttabelle = "Person"

    mit Datenfeld="Vorname", "Nachname", ..., "Primäre Mailadresse" (Formelfeld)

    Untertabelle = "Mail"

    mit Datenfeld = "Mailadresse", "Primär"

    Die Idee: In der Untertabelle können für alle Personen mehrere Mailadressen hinterlegt werden. Für die Kommunikation ist aber immer nur die primäre Adresse zu verwenden. Ob es sich um eine primäre Adresse handelt, wird über das Datenfeld "Primär" für jede eingetragene Mailadresse hinterlegt.

    Ich würde mir gerne über ein Formelfeld in der Haupttabelle die für jede Person hinterlegte primäre Mailadresse rausgeben lassen.

    Was für eine Formel könnte ich hierfür nutzen?

    Vielen Dank nochmal!

    • Ninox-Professional
    • planoxpro
    • vor 3 Tagen
    • Gemeldet - anzeigen

    Hallo ljr, wenn 'Mail' eine Untertabelle ist, dann brauchst man kein "select", sondern kann aus 'Person' direkt auf die verknüpften Einträge zugreifen. Allerdings muss man für die Abfrage statt "where" dann die eckigen Klammern nehmen:

    first(Mail['Primär']).Mailadresse

    Wobei ich davon ausgegangen bin, dass 'Primär' ein Ja-/Nein-Feld ist.

    Wenn man verhindern will, dass versehentlich mehrere E-Mail-Adressen als Primär gekennzeichnet werden, kann man das mit einem Trigger "Nach Änderung" im Ja-/Nein-Feld 'Primär' tun, zum Beispiel so:

    if 'Primär' then
        Person.Mail['Primär'].('Primär' := false);
        'Primär' := true
    end
      • info.95
      • vor 3 Tagen
      • Gemeldet - anzeigen

      Das hat funktioniert. Vielen Dank!

      Ich hätte noch eine Anschlussfrage und würde mich über einen Tipp freuen.

      Ich würde über ninox gerne mehrere Verteilerlisten pflegen. In diese sollen sowohl Mailadressen von Personen als auch Organisationen eingetragen werden können.

      Ich habe die Tabellen entsprechend in Beziehung zueinander gesetzt. Die Haupttabelle "Person", deren Untertabelle "Mail" und die Haupttabelle "Organisation" sind mit der Haupttabelle "Verteilerliste" verknüpft.

      Ich würde die Ansicht die sich öffnet wenn ich in der Haupttabelle "Verteilerliste" auf das verlinkte Feld zur  Untertabelle "Mail" klicke gerne nur die Mailadressen anzeigen lassen, die auch zu der Person gehören. Wie kann ich das filtern? Aktuell werden mir alle Mailadressen der Untertabelle "Mail" angezeigt. Das wird auf Dauer unübersichtlich.

      Vielen Dank nochmal für deine Hilfe!

      • info.95
      • vor 3 Tagen
      • Gemeldet - anzeigen

      Ich glaube ich hab eine Lösung gefunden.

      Ich habe es über die Formel:

      b.Person = a.Person

      in dem Feld "Einschränkungen" der Verlinkung zu "Mail" geregelt. Soweit ich das überblicke funktioniert das bisher.