1. Prozedur um Datensätze aus zwei importieren Tabellen zu verknüpfen? 2. Wie blende ich in einem Formular A ausgewählte Datenfelder aus einer verknüpften Tabelle B ein. (eigenes CRM)

Ninox Profile

Liebe Forenmitglieder,

beim Aufbau eines eigenen CRM für die Praxis brauche ich Unterstützung. Ich habe bereits unter dem Stichworten CRM, 1:n, Verknüpfung, u.s.w. gesucht. Ich nutze ninox seit einem Monat und habe meine bisherigen Exceltabellen in Ninox übertragen. Nun versuche ich die Tabellen so zu verknüpfen, das ich redundante Eingaben versuche zu vermeiden. Ich arbeite hauptsächlich auf der Formularebene im Arbeitsalltag.

Meine bisheriger Aufbauziel:
Formular Klient aus der Klienten-GesamttabelleStammdaten > verknüpft mit dessen Tabelle Bezugspersonen (aus Gesamttabelle: Bezugspersonen)
                                                                                        > verknüpft mit dessen Tabelle Sitzungshistorie (aus Gesamttabelle: Sitzungen)
                                                                                                > verknüpft mit dessen Rechnungshistorie (aus Gesamttabelle: Abrechnungen)

1. Frage: Gibt es eine Möglichkeit Datensätze aus zwei importierten Tabellen über einen einmaligen "automatisierten Prozess" so zu verknüpfen, dass alle die Datensätze mit der Kundennummer X der einen Tabelle (1) mit den Datensätzen der Kundennummer X einer anderen Tabelle (N) verknüpft werden?

Bisher ist es mit gelungen die Beziehungen zwischen den importierten Tabellen herzustellen. Deshalb sehe ich inzwischen auch im Formular jeweiliger Klienten, nicht nur seine Stamm- und Kontaktdaten, sondern auch 3 kleine Tabellen: zu dessen Bezugspersonen, den Sitzungsterminen und den bisherigen Zahlungen. So weit, so gut. Ich sehe die Tabellen aber noch ohne Daten. Die Daten aus diesen anderen Tabellen kommen ebenfalls aus einem Import. Leider muss ich die Datensätze der 3 Tabellen nun von Hand mit dem jeweiligen Klienten verbinden, da ich keinen Weg sehe, Ninox zu sagen: nehme die Sitzungsprotokolle/Bezugspersonen/Abrechnungshistorie der Kundennummer x und verknüpfe sie einmalig selbst mit den Stammdaten der Kundennummer x. Deshalb meine Frage 1.

2. Frage: Wie gelingt es mir, dass ich in einem nachrangigen Formular (aus Tabelle Sitzungshistorie, siehe obere Struktur) auch die verknüpften Stammdaten des jeweiligen Klienten (aus Tabelle Klientenstammdaten) angezeigt sehe? Auf Tabellenebene gelingt dies. Ich kann in der Tabelle Sitzungen über den Filter auswählen, welche Spalten ich aus der verknüpften Tabelle Klientenstammdaten angezeigt werden sollen. Im Formular Sitzungen (zur Tabelle Sitzungshistorie) kann ich mir die relevanten Stammdaten-Datenfelder jedoch nicht einblenden lassen. Dazu finde ich keinen Weg. Deshalb meine Frage 2.

Ich hoffe Ihr habt ein paar Ideen.
Vielen und herzlichen Dank.

Marc Borries

Ninox Profile

Hallo Marc,

 

zu 1.:

vorausgesetzt, Du hast in allen vier Tabellen jeweils ein Feld (z.B. Kundennummer) mit gleichem Inhalt und die jeweiligen Verknüpfungen sind nach wie vor nach den verknüpften Tabellen benamt, könntest Du über die Console im Admin-Modus oder über eine (temporäre) Befehlsschaltfläche mit folgendem Code die jeweilige Verknüpfung zu "Stammdaten" herstellen:

 

for i in select BEZUGSPERSONEN where not STAMMDATEN do
   i.STAMMDATEN := first(select STAMMDATEN where 'Kundennummer' = i.'Kundennummer')
end

 

"BEZUGSPERSONEN" ersetzt Du in weiteren Durchläufen durch "SITZUNGSHISTORIE" und "RECHNUNGSHISTORIE". Die Tabellen- bzw. Verknüpfungsbezeichnungen (GROSSBUCHSTABEN) und die Feldnamen (in Hochkomma) musst Du an Dein Datenmodell anpassen.

 

zu 2.:

Du kannst in einer Untertabelle mittels Punkt-Notation auf Daten aus der Obertabelle zugreifen, z.B. STAMMDATEN.'irgendein Feld'.

 

lg, Torsten

Ninox Profile

Hallo Torsten,
vielen Dank für Deine schnelle Rückmeldung und das obwohl die verloren gegangenen Formatierungen meines Textes ihn bestimmt schwer verständlich gemacht haben.

zu 1. ich verstehe, was ich ersetzen muss und werde es nachher ausprobieren

zu 2. bevor ich Verständnisfragen dazu stelle: Hilft mir Dein Hinweis dabei, mehrere Formularfelder aus Tabelle A (Kundennummer) in einem Formular der Tabelle B (Sitzungen) einzublenden. Mein Ziel war es in einer Sitzungsdokumentation (Formularansicht) verschiedene Stammdaten des jeweiligen/verknüpften Klienten zu sehen. 

Vielen Dank für Deine Mühe
Marc

Ninox Profile

Hallo Marc,

 

zu 1.: viel Erfolg

 

zu 2.: Genau so ist es. Eventuell genügt Dir auch die Verknüpfung selbst - hier kannst Du über "anzeigen als" schon steuern, welche Felder der Verknüpfungslink wie anzeigt.

 

lg, Torsten

Ninox Profile

Hallo Torsten,

viele Dank für Deine Hinweise und Lösungen, sie haben nach entsprechenden Anpassungen sehr geholfen. Ich nehme an, dass meine Umbauten keine eleganten Lösungen darstellen, aber sie funktionieren tatsächlich. Für meine weiteren Vorhaben bräuchte ich wahrscheinlich stundenweise einen Ninox-Berater, da meine Kernkompetenz etwas anders ist und anderweitig benötigt wird. Vielleicht kennst Du ja jemanden.

Hier als Feedback für Deine Hilfe, mal eines meiner Ergebnisse:

Um in einem Sitzungsformular die Klienten-Stammdaten anzeigen zu lassen:


for i in select Sitzungen where not '@ Klienten-Nr.' do
i.('@ Klienten-Nr.' := first(select Stammdaten where 'Klienten-Nr.' = i.'Klienten-Nr.'))
end and for i in select Sitzungen where not '@ Kürzel' do
i.('@ Kürzel' := first(select Stammdaten where 'Klienten-Nr.' = i.'Klienten-Nr.'))
end and for i in select Sitzungen where not '@ Anrede' do
i.('@ Anrede' := first(select Stammdaten where 'Klienten-Nr.' = i.'Klienten-Nr.'))
end and for i in select Sitzungen where not '@ Titel' do
i.('@ Titel' := first(select Stammdaten where 'Klienten-Nr.' = i.'Klienten-Nr.'))
end and for i in select Sitzungen where not '@ Vorname' do
i.('@ Vorname' := first(select Stammdaten where 'Klienten-Nr.' = i.'Klienten-Nr.'))
end and for i in select Sitzungen where not '@ Nachname' do
i.('@ Nachname' := first(select Stammdaten where 'Klienten-Nr.' = i.'Klienten-Nr.'))
end

Antworten