Master/Detail Einschränkung
3 posts
• Page 1 of 1
Master/Detail Einschränkung
Kann die Liste der Master-Details auf jene Detail-Sätze eingeschränkt werden, die noch nicht dem Master-Satz zugeordnet sind?
Beispiel:
Der Master Satz "Komponente" enthält 0 bis n zugeordnete Entwickler. Die möglichen Entwickler stammen aus einer eigenen Stammdaten Tabelle. Beim Hinzufügen eines neuen Entwicklers sollten die bereits zugeordneten Entwickler nicht mehr angeboten werden weil es ansonsten zu einer "unique constraint" Exception kommt.
Ein ähnliches Problem tritt in der Showcase-Anwendung auf, wenn man zu einem Staat nochmals ein Bundesland hinzufügt, das bereits zugeordnet ist.
Beispiel:
Der Master Satz "Komponente" enthält 0 bis n zugeordnete Entwickler. Die möglichen Entwickler stammen aus einer eigenen Stammdaten Tabelle. Beim Hinzufügen eines neuen Entwicklers sollten die bereits zugeordneten Entwickler nicht mehr angeboten werden weil es ansonsten zu einer "unique constraint" Exception kommt.
Ein ähnliches Problem tritt in der Showcase-Anwendung auf, wenn man zu einem Staat nochmals ein Bundesland hinzufügt, das bereits zugeordnet ist.
- johnit
- Posts: 45
- Joined: Fri Nov 16, 2012 5:58 pm
Re: Master/Detail Einschränkung
Der einfachste Weg ist über eine View wie z.B.:
Diese View dann im Life-cycle Objekt des Screens für Ihre DBStorage verwenden.
Am Client z.B.:
- Code: Select all
create or replace view v_komp_user_notassigned as
select e.id
,e.name
,k.id komp_id
from komponenten k,
entwickler e
where not exists (select *
from komp_entwickler ke
where ke.entw_id = e.id and ke.komp_id = k.id)
Diese View dann im Life-cycle Objekt des Screens für Ihre DBStorage verwenden.
Am Client z.B.:
- Code: Select all
private void initializeModel() throws Throwable
{
…
// Lookup für die noch nicht zugewiesenen Benutzer anlegen
UILinkedCellEditor lceUserNotAssigned = new UILinkedCellEditor(
new ReferenceDefinition(new String[] {"ENTW_ID", "ENTW_NAME"},
rdbKompUserNotassigned,
new String[] {"ID", "NAME"}));
// Die KOMP_ID der aktuellen Zeile als Suche mit der KOMP_ID im Lookup verknüpfen
lceUserNotAssigned.setSearchColumnMapping(new ColumnMapping(new String[] {"KOMP_ID"}))
// Lookup als Editor auf die richtige Spalte hängen.
rdbKompEntwickler.getRowDefinition().getColumnDefinition("ENTW_NAME").
getDataType().setCellEditor(lceUserNotAssigned);
-
Support@SIB - Posts: 353
- Joined: Mon Sep 28, 2009 1:56 pm
Re: Master/Detail Einschränkung
Die vorgeschlagene Weg funktioniert bestens.
- johnit
- Posts: 45
- Joined: Fri Nov 16, 2012 5:58 pm
3 posts
• Page 1 of 1