This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information

Master/Detail-Beziehung

Allgemeine Fragen zur Entwicklung von und mit JVx.

Master/Detail-Beziehung

Postby jsmw » Thu May 26, 2011 9:23 pm

Hallo,

Master/Detail-Beziehung wird über "setMasterReference" hergestellt und im Formular wird bei Verwendung von 'UIEditor' bei der Referenzspalte (mit od. ohne FK) die richtige UIKomponente (Widget) an Hand des Spaltentyps zur Verfügung gestellt. Beim Detail/Master gibt es dann eine Selectbox, wo nicht die ID sondern eine andere Spalte aus dem Master-Datensatz zur Auswahl angezeigt wird.

Folgende Fragen zu Beziehungen:
- Kann ich angeben, dass eine bestimmte oder mehrere Spalten aus dem referenzierten Masterdatensatz angezeigt werden (inaktiv oder editierbar)?
- Kann ich angeben, dass bei der Filterung/Suche in der Selectbox nach Übereinstimmung in bestimmten Feldern gesucht werden soll?
- Wie sieht es bei tiefer verschachtelten Beziehung?
z.B. 1:n-Beziehungen: A -> B -> C- > D -> ...
Ein Formular für C wird gebaut (Detail/Master). Neben den C.Spalten sollen auch gewisse, zugehörige B.Spalten bzw. einzelne A.Spalten usw. auf dem Formular angezeigt werden.
Gibt es hier Untrerstützung vom Framework?

z.B.
Ansprechpartner.Firma.name
Ansprechpartner.Firma.strasse
Ansprechpartner.Firma.Land.bezeich
Ansprechpartner.Firma.Land.waehr
Ansprechpartner.Firma.Land.Etwas.sonstSpalte
(typischer INNER JOIN im SQL)

Gibt es evtl. ein Code-Beispiel für so eine verschachtelte Beziehung auf Client und Server-Seite? Oder greift für solche Fälle der Programmierer direkt auf SQL zurück?

FG
Jan
jsmw
 
Posts: 38
Joined: Tue May 24, 2011 6:33 pm

Re: Master/Detail-Beziehung

Postby rjahn » Thu May 26, 2011 10:11 pm

Die Master/Detail Beziehungen in JVx sind nicht mit üblichen Master/Detail aka Formular Beziehungen vergleichbar. Die Master/Detail Beziehungen in JVx können über beliebige Ebenen, beliebige DataBooks und beliebige Spalten hergestellt werden. Das muss nicht unbedingt die PK/FK Beziehung aus einer Datenbank sein!

Seit JVx 0.8 werden die PK/FK Beziehungen automatisch ausgewertet aber das kann auch deaktiviert werden:

Code: Select all
DBStorage.setDefaultAutoLinkReference(boolean);


Dadurch stellt das UI jedoch keine Auswahllisten bereit sondern zeigt die Spalten lt. Default Sichtbarkeit an. Die Spalten mit *_ID, *_INTERN, ... (siehe JVx 0.9 released)werden standardmäßig ausgeblendet.

Die Auswahllisten können entweder im Client Code definiert werden oder aber bei den Storages am Server. Eine ausführliche Beschreibung gibt es hier

Ein Code Beispiel für die Auswahllisten und für n:m Beziehungen mit und ohne Formular ist im Kontakt Screen des Showcase zu finden. Der Screen wird einmal manuell und einmal mit automatischen Auswahllisten dargestellt. Der Source Code ist separat verfügbar oder in der Applikation direkt einzusehen.

Weitere Beispiele für Master/Detail Beziehungen sind in der Packung! Applikation zu sehen. Auch dafür ist der Source Code verfügbar.

Die Tiefe der Verschachtelung stellt kein Hindernis dar und auch die Spalten aus A, B, C können sie im Formular anzeigen. Selbst die Spalten aus der aktuellen Selektion von D und tiefer sind möglich. Einfach das gewünschte DataBook beim Editor konfigurieren.

Die Spaltenanzeige wird mit der ColumnView definiert.

SQL benötigen Sie für einfache Tabellen Darstellungen nicht, weil die Joins automatisch aufgelöst werden. Wenn sie auf den Autmatismus verzichten wollen/müssen, so können Sie entweder Views erstellen (bevorzugte Variante) oder die Statements selbst angeben. Die DBStorage bietet hier sehr viel Unterstützung. Die Beziehungen können Sie dann ebenfalls frei setzen.
rjahn
 
Posts: 41
Joined: Sun Sep 13, 2009 1:54 pm


Return to Development (DE)