Anfängerproblem: Editieren über Dropdownlist

Allgemeine Fragen zur Entwicklung von und mit JVx.

Anfängerproblem: Editieren über Dropdownlist

Postby stephanf » Mon Nov 02, 2015 2:42 pm

Hallo,

ich habe meine erste Testapplikation geschrieben, hänge aber an dem Problem der Dropdownlisten. Der Wert für das Feld kommt aus einer zweiten Tabelle. Was mir nicht klar ist: Wann benötige ich
Code: Select all
rdb.setMasterReference(...)
und wann
Code: Select all
ReferenceDefinition referenceDefinition = new ReferenceDefinition();
      referenceDefinition.setReferencedDataBook(pReferencedDataBook);
      referenceDefinition.setReferencedColumnNames(pReferenceColumnNames);
      referenceDefinition.setColumnNames(pColumnNames);

      UILinkedCellEditor linkedCellEditor = new UILinkedCellEditor();
      linkedCellEditor.setLinkReference(referenceDefinition);
      linkedCellEditor.setTableHeaderVisible(false);

      pDataBook.getRowDefinition().getColumnDefinition(pColumnNames[1]).getDataType().setCellEditor(linkedCellEditor);


Ich habe nur die zweite Variante verwendet und ich kann in einer Tabelle den neuen Wert wählen und der zugehörige Schlüssel, der auch in der Tabelle angezeigt wird, ändert sich auch, aber der zugehörige Text, den ich in der Auswahlliste gewählt habe, bleibt nicht in der Tabelle stehen. Das Feld bleibt danach leer.

Für einen Tip oder ein kleines Beispiel wäre ich sehr dankbar.

Gruß
Frank
Attachments
Unbenannt.JPG
Unbenannt.JPG (19.58 KiB) Viewed 1858 times
stephanf
 
Posts: 7
Joined: Mon Nov 02, 2015 2:33 pm

Re: Anfängerproblem: Editieren über Dropdownlist

Postby Support@SIB » Mon Nov 02, 2015 3:36 pm

Die Methode setMasterReference wird benötigt, um eine Master/Detail Beziehung herzustellen:

Das Detail hängt immer an genau einem Master:

Code: Select all
setMasterReference(new ReferenceDefinition(new String[] {"MASTER_ID"},
                                           master, new String[] {"ID"});

Die Spalte im Master: ID
Die Spalte im Detail: MASTER_ID

Natürlich können auch mehrere Spalten als zusammengesetzter Schlüssel verwendet werden!

Um eine Auswahlliste zu definieren gibt es zwei Möglichkeiten:
Automatisch (aufgrund der DB FKs) - siehe Example for automatic link cell editors

Durch diesen Automatismus wird natürlich enorm viel Source Code gespart und die Fehleranfälligkeit wird reduziert.

Natürlich können auch server-seitig, für eine Storage, die Auswahllisten konfiguriert werden.

Wenn die Auswahllisten manuell im Client Code definiert werden sollen, dann müssen diese mittels UILinkedCellEditor erstellt werden, z.B.:

Code: Select all
UILinkedCellEditor imageLook = new UILinkedCellEditor(new ReferenceDefinition(
                                                 new String[] {"IMAGE", "IMAGENAME"},
                                                 mdbImagesLook,
                                                 new String[] {"IMAGE", "IMAGENAME"}));
      rdbTeams.getRowDefinition().getColumnDefinition("IMAGENAME").getDataType().setCellEditor(imageLook);


Bei manuellen Auswahllisten gilt zu beachten, das im Normalfall eine ID und mindestens eine Anzeigespalte benötigt wird, sprich ein Schlüssel und mindestens ein Wert dazu. Wenn aus einer Tabelle selektiert wird, die nur die ID enthält dann sollte eine View erstellt werden, die zur ID auch noch den Anzeigewert in einer Spalte anbietet (oder es wird im GUI Code eine temporäre Spalte angelegt).

Die Auswahlliste schreibt immer die angegebenen Spalten (aus der ReferenceDefinition) in die zugrundeliegende Row zurück.

In der DemoERP Anwendung wurden automatische Auswahllisten verwendet und diese könnten Sie ggf. debuggen um zu sehen wie dies funktioniert.
User avatar
Support@SIB
 
Posts: 200
Joined: Mon Sep 28, 2009 1:56 pm

Re: Anfängerproblem: Editieren über Dropdownlist

Postby stephanf » Tue Nov 03, 2015 4:37 pm

Steht zum Debuggen von DemoERP auch der Sourcecode zur Verfügung?
Ich konnte diesen nicht finden.
stephanf
 
Posts: 7
Joined: Mon Nov 02, 2015 2:33 pm

Re: Anfängerproblem: Editieren über Dropdownlist

Postby Support@SIB » Tue Nov 03, 2015 5:10 pm

Die DemoERP Anwendung ist bei SourceForge gehostet, siehe:

http://sourceforge.net/p/erpdemoapplica ... s/DemoERP/
User avatar
Support@SIB
 
Posts: 200
Joined: Mon Sep 28, 2009 1:56 pm


Return to Entwicklung