Ausblenden von Spalten
8 posts
• Page 1 of 1
Ausblenden von Spalten
Hallo
Ist es möglich bei einer UITable Spalten auszublenden oder muss man das über das DataBook steuern?
Danke für die Info.
Bernd
Ist es möglich bei einer UITable Spalten auszublenden oder muss man das über das DataBook steuern?
Danke für die Info.
Bernd
- bmgnet
- Posts: 6
- Joined: Wed Oct 21, 2009 12:00 pm
Re: Ausblenden von Spalten
Die sichtbaren Spalten werden über das DataBook definiert:
Mit der Release von JVx 0.7, wird es auch möglich sein, einzelne Spalten ein/auszublenden. Dadurch müssen nicht alle sichtbaren Spalten definiert werden, sondern nur die nicht sichtbaren. Außerdem wird das vararg Sprachkonstrukt von Java besser integriert:
Hinweis
Spalten mit der Bezeichnung ID oder Spaltenbezeichnungen die mit _ID enden, werden automatisch ausgeblendet und müssen bei Bedarf manuell eingeblendet werden. Zusätzlich werden Spalten mit binärem Inhalt automatisch ausgeblendet.
- Code: Select all
rdbInfo.getRowDefinition().setTableColumnNames(new String [] { "STANDORT", "KENNZAHL"});
Mit der Release von JVx 0.7, wird es auch möglich sein, einzelne Spalten ein/auszublenden. Dadurch müssen nicht alle sichtbaren Spalten definiert werden, sondern nur die nicht sichtbaren. Außerdem wird das vararg Sprachkonstrukt von Java besser integriert:
- Code: Select all
rdbInfo.getRowDefinition().setTableColumnNames("STANDORT", "KENNZAHL");
Hinweis
Spalten mit der Bezeichnung ID oder Spaltenbezeichnungen die mit _ID enden, werden automatisch ausgeblendet und müssen bei Bedarf manuell eingeblendet werden. Zusätzlich werden Spalten mit binärem Inhalt automatisch ausgeblendet.
-
Support@SIB - Posts: 353
- Joined: Mon Sep 28, 2009 1:56 pm
Re: Ausblenden von Spalten
Bezüglich
-> Spalten mit der Bezeichnung ID oder Spaltenbezeichnungen die mit _ID enden, werden automatisch ausgeblendet.
Ist es gewollt das man diese Spaltennamen auch groß schreiben muss damit diese Funktionalität wirkt?
Ich nutze Mysql 5.0.
Danke
Lg Bernd
-> Spalten mit der Bezeichnung ID oder Spaltenbezeichnungen die mit _ID enden, werden automatisch ausgeblendet.
Ist es gewollt das man diese Spaltennamen auch groß schreiben muss damit diese Funktionalität wirkt?
Ich nutze Mysql 5.0.
Danke
Lg Bernd
- bmgnet
- Posts: 6
- Joined: Wed Oct 21, 2009 12:00 pm
Re: Ausblenden von Spalten
Im Moment, JA.
Mit JVx 0.7 wird das aber nicht mehr so sein.
Wir empfehlen generell einheitliche Namenskonventionen für alle Datenbanken und um Probleme beim Wechsel der Datenbank zu vermeiden.
Mit Oracle zB haben Sie mit Spaltenbezeichnungen in Kleibuchstaben nur wenig Freude.
Mit JVx 0.7 wird das aber nicht mehr so sein.
Wir empfehlen generell einheitliche Namenskonventionen für alle Datenbanken und um Probleme beim Wechsel der Datenbank zu vermeiden.
Mit Oracle zB haben Sie mit Spaltenbezeichnungen in Kleibuchstaben nur wenig Freude.
-
Support@SIB - Posts: 353
- Joined: Mon Sep 28, 2009 1:56 pm
Re: Ausblenden von Spalten
Hier scheint es Änderungen in der API (derzeit 0.8) gegeben zu haben. Die Methode setTableColumnNames gibt es nicht mehr.
Wie mache ich das Ausblenden von Spalten in der aktuellen Version?
Wie mache ich das Ausblenden von Spalten in der aktuellen Version?
- iferle
- Posts: 6
- Joined: Tue Oct 19, 2010 9:45 am
- Location: München
Re: Ausblenden von Spalten
Danke für den Hinweis zu diesem Posting!
Mit Version 0.8 wurde set/getColumnView eingeführt, um die Unabhängigkeit von den Controls zu gewährleisten!
Details dazu: Blog, Support System
Sie können mit
eine spezifische Liste an Spalten - in diesem Fall für Tabellen - setzen.
Sie können die Defaults, für alle Controls, mit:
ermitteln, und mit
die Defaults, für alle Controls, verändern.
Beispiel um eine Column aus den Defaults zu entfernen:
Die Konstruktoren der Klasse javax.rad.model.ColumnView sind ev. hilfreich.
Anmerkung
Die Default Einstellung berücksichtigt die IgnoredColumnNames der RowDefinition:
z.B die _ID Spalten werden ausgeblendet.
Mit Version 0.8 wurde set/getColumnView eingeführt, um die Unabhängigkeit von den Controls zu gewährleisten!
Details dazu: Blog, Support System
Sie können mit
- Code: Select all
<IRowDefinition>.setColumnView(ITableControl.class, new ColumnView(String...));
eine spezifische Liste an Spalten - in diesem Fall für Tabellen - setzen.
Sie können die Defaults, für alle Controls, mit:
- Code: Select all
<IRowDefinition>.getColumnView(null);
ermitteln, und mit
- Code: Select all
<IRowDefinition>.setColumnView(null, ...);
die Defaults, für alle Controls, verändern.
Beispiel um eine Column aus den Defaults zu entfernen:
- Code: Select all
ColumnView cview = <IRowDefinition>.getColumnView(null);
cview.removeColumnNames("NAME");
Die Konstruktoren der Klasse javax.rad.model.ColumnView sind ev. hilfreich.
Anmerkung
Die Default Einstellung berücksichtigt die IgnoredColumnNames der RowDefinition:
- Code: Select all
RowDefinition.setDefaultIgnoredColumnNames(String...);
RowDefinition.getDefaultIgnoredColumnNames();
z.B die _ID Spalten werden ausgeblendet.
-
Support@SIB - Posts: 353
- Joined: Mon Sep 28, 2009 1:56 pm
Re: Ausblenden von Spalten
Hmm, ich kriege es nicht hin.
Ich möchte in der FirstApplication z.B. die Spalte 'Street' ausblenden (Datenbank ist DB2):
Der Versuch mit:
schlägt nach dem Start mit der Fehlermeldung: "Column index out of range" fehl.
Ich möchte in der FirstApplication z.B. die Spalte 'Street' ausblenden (Datenbank ist DB2):
Der Versuch mit:
- Code: Select all
rdbContacts.setDataSource(dataSource);
rdbContacts.setName("contacts");
IRowDefinition iRowDef = rdbContacts.getRowDefinition();
ColumnView cview = iRowDef.getColumnView(null);
cview.removeColumnNames("STREET");
iRowDef.setColumnView(null, cview);
rdbContacts.setRowDefinition(iRowDef);
rdbContacts.open();
schlägt nach dem Start mit der Fehlermeldung: "Column index out of range" fehl.
- iferle
- Posts: 6
- Joined: Tue Oct 19, 2010 9:45 am
- Location: München
Re: Ausblenden von Spalten
Kein Problem, eine kurze Lösung wäre folgende:
Es ist nicht nötig, die RowDefinition bzw. die ColumnView wieder zu übergeben:
da immer auf die original Referenzen zugegriffen wird!
Wir versuchen den Source Code Aufwand so gering als möglich zu halten.
Anmerkung
Erst nachdem das DataBook geöffnet wurde, sind die Meta Daten bekannt und somit bewirkt das removeColumnNames vor dem open() noch nichts!
Dadurch das bereits vor open() auf die ColumnView zugegriffen wird und noch keine Columns bekannt waren, wurde eine "leere" ColumnView verwendet (siehe Support System). In Folge dessen und eines Problems in der Table (keine Columns) bekamen Sie die Exception (siehe Support System).
Die Probleme wurden bereits behoben, treten jedoch nicht auf, wenn die ColumnView nach open() verändert wird!
- Code: Select all
rdbContacts.setDataSource(dataSource);
rdbContacts.setName("contacts");
rdbContacts.open();
rdbContacts.getRowDefinition().getColumnView(null).removeColumnNames("STREET", ...);
Es ist nicht nötig, die RowDefinition bzw. die ColumnView wieder zu übergeben:
- Code: Select all
iRowDef.setColumnView(null, cview);
rdbContacts.setRowDefinition(iRowDef);
da immer auf die original Referenzen zugegriffen wird!
Wir versuchen den Source Code Aufwand so gering als möglich zu halten.
Anmerkung
Erst nachdem das DataBook geöffnet wurde, sind die Meta Daten bekannt und somit bewirkt das removeColumnNames vor dem open() noch nichts!
Dadurch das bereits vor open() auf die ColumnView zugegriffen wird und noch keine Columns bekannt waren, wurde eine "leere" ColumnView verwendet (siehe Support System). In Folge dessen und eines Problems in der Table (keine Columns) bekamen Sie die Exception (siehe Support System).
Die Probleme wurden bereits behoben, treten jedoch nicht auf, wenn die ColumnView nach open() verändert wird!
-
Development@SIB - Posts: 325
- Joined: Mon Sep 28, 2009 1:54 pm
8 posts
• Page 1 of 1