setFilter in Verbindung mit ReferenceDefinition
Posted: Fri Dec 20, 2013 12:20 pm
Hallo!
Ich bin auf folgendes Problem mit der aktuellen Version von JVX (1.2) gestoßen:
Das Einschränken von Daten in einem Databook mittels setFilter funktioniert prinzipiell.
Mittels getRowCount() sehe ich auch, dass sich die Anzahl der Zeilen ändert. Wenn ich das DataBook in einer Tabelle anzeigen lasse sieht auch alles richtig aus.
Wenn dieses DataBook jetzt allerdings in einem anderen DataBook als ReferenceDefinition für einen UILinkedCellEditor verwendet wird, dann wird in dem Dropdown der Tabelle das referenzierte DataBook mit allen Zeilen (also ohne Filter) angezeigt.
Die fiktive Tabelle rdbArticleWithAmount hat auch noch eine MasterReference auf eine andere Tabelle gesetzt.
Warum funktioniert setFilter bei dem DataBook allein, aber nicht wenn dieses von einem anderen referenziert wird?
Ich bin auf folgendes Problem mit der aktuellen Version von JVX (1.2) gestoßen:
Das Einschränken von Daten in einem Databook mittels setFilter funktioniert prinzipiell.
Mittels getRowCount() sehe ich auch, dass sich die Anzahl der Zeilen ändert. Wenn ich das DataBook in einer Tabelle anzeigen lasse sieht auch alles richtig aus.
Wenn dieses DataBook jetzt allerdings in einem anderen DataBook als ReferenceDefinition für einen UILinkedCellEditor verwendet wird, dann wird in dem Dropdown der Tabelle das referenzierte DataBook mit allen Zeilen (also ohne Filter) angezeigt.
- Code: Select all
// Databook, welches von anderem referenziert werden soll
rdbArticle = new RemoteDataBook();
rdbArticle.setDataSource(dataSource);
rdbArticle.setName("articleData");
rdbArticle.setMemFilter(true); // true/false ändert nichts an dem Fehler
rdbArticle.open();
rdbArticle.getRowDefinition().getColumnView(UITable.class).setColumnNames("NAME_AND_NUMBER"); // Fehler auch wenn diese Zeile auskommentiert ist
debug(rdbArticle.getRowCount()); // gibt bsp. 315 aus
rdbArticle.setFilter(new Equals("ID", 20));
debug(rdbArticle.getRowCount()); // gibt korrekt 1 aus
//--------------------------------------------------------------------
rdbArticleWithAmount = new RemoteDataBook();
rdbArticleWithAmount.setDataSource(dataSource);
rdbArticleWithAmount.setName("articleWithAmount");
rdbArticleWithAmount.open();
rdbArticleWithAmount.getRowDefinition().getColumnDefinition("ARTICLE_NAME").setLabel("Artikel");
rdbArticleWithAmount.getRowDefinition().getColumnDefinition("AMOUNT").setLabel("Anzahl");
rdbArticleWithAmount.getRowDefinition().getColumnDefinition("ARTICLE_NAME").getDataType().setCellEditor(new UILinkedCellEditor(new ReferenceDefinition(new String[] {"ARTICLE_ID", "ARTICLE_NAME"}, rdbArticle, new String[] {"ID", "NAME_AND_NUMBER"})));
Die fiktive Tabelle rdbArticleWithAmount hat auch noch eine MasterReference auf eine andere Tabelle gesetzt.
Warum funktioniert setFilter bei dem DataBook allein, aber nicht wenn dieses von einem anderen referenziert wird?