Search the FirstSpirit Knowledge Base
Hallo,
habe eine FS_LIST in einer Datenquelle mit folgender Syntax:
<FS_LIST name="cs_exhibitor" allowEmpty="no" hFill="yes" height="450" rows="4">
<DATASOURCE type="database" useLanguages="no">
<LABELS>
<LABEL lang="*">#item.alt_title_text</LABEL>
</LABELS>
<ACTIONS>
<ACTION name="ADD"/>
<ACTION name="REMOVE"/>
<ACTION name="UP"/>
<ACTION name="DOWN"/>
<ACTION name="GOTO"/>
<ACTION name="EDIT"/>
<ACTION name="NEW"/>
</ACTIONS>
<COLUMNS>
<COLUMN show="no">#identifier</COLUMN>
</COLUMNS>
<LAYOUT>
<ADD component="toolbar" constraint="top"/>
<ADD component="overview" constraint="center"/>
<ADD component="stackedview" constraint="bottom"/>
</LAYOUT>
<table>messe_karlsruhe.exhibitor_logo_item</table>
</DATASOURCE>
<LANGINFOS>
<LANGINFO lang="*" label="Datensatzauswahl"/>
</LANGINFOS>
</FS_LIST>
Das Problem ist, dass sich die Datensätze in dieser FS_LIST nicht manuell in der Datenquelle sortieren lassen.
Sobald man die Datenquelle erneut zur Bearbeitung öffnet, ist die geänderte Reihenfolge weg. Offensichtlich wird die geänderte Reihenfolge nicht gespeichert.
Habe versucht das Attribut sortOrder="KEEP_ORDER" einzufügen, aber dieses wird nach Speicherung in obigen Code entfernt. Wahrscheinlich weil es der Standard-Wert ist.
Wir arbeiten mit dem FirstSpirit Client 4.2.437.44763. Vielleicht kann in dieser Version noch keine FS_LIST vom Typ Database manuell sortiert werden.
Als Workaround habe ich eine CMS_INPUT_CONTENTLIST mit einem indexAttribute implementiert und damit funktioniert die manuelle Sortierung.
Nur warum funktioniert das nicht mit einer FS_LIST vom Typ Database ?
Grüsse,
Sandra Stolle
Hallo Sandra,
schau dir mal folgenden Beitrag an http://www.e-spirit.com/odfs42/de/vorlagenentwicklung/formular/fs/fs_list/beispielprojekt/beispielpr... innerhalb des Projektes ist eine Median Gallerie umgesetz, die eine man. Sortierung der Einträge erlaubt.
ok, hab mir das Beispiel angeschaut und den PERSISTENCEINDEX noch in die FS_LIST eingetragen. Diese sieht jetzt so aus:
<FS_LIST name="cs_exhibitor" allowEmpty="no" hFill="yes" height="450" rows="4">
<DATASOURCE type="database" useLanguages="no">
<LABELS>
<LABEL lang="*">#item.alt_title_text</LABEL>
</LABELS>
<ACTIONS>
<ACTION name="ADD"/>
<ACTION name="REMOVE"/>
<ACTION name="UP"/>
<ACTION name="DOWN"/>
<ACTION name="GOTO"/>
<ACTION name="EDIT"/>
<ACTION name="NEW"/>
</ACTIONS>
<COLUMNS>
<COLUMN show="no">#identifier</COLUMN>
</COLUMNS>
<LAYOUT>
<ADD component="toolbar" constraint="top"/>
<ADD component="overview" constraint="center"/>
<ADD component="stackedview" constraint="bottom"/>
</LAYOUT>
<PERSISTENCEINDEX>order_index</PERSISTENCEINDEX>
<table>messe_karlsruhe.exhibitor_logo_item</table>
</DATASOURCE>
<LANGINFOS>
<LANGINFO lang="*" label="Datensatzauswahl"/>
</LANGINFOS>
</FS_LIST>
Nur leider bekomme ich jetzt beim Abspeichern in der Datenquelle folgende NullPointer Exception:
java.lang.NullPointerException
at de.espirit.firstspirit.ui.gadgets.swing.fslist.ContentModeHelper.findMapping(ContentModeHelper.java:467)
at de.espirit.firstspirit.client.access.editor.FsListEditorValueImpl.assimilate(FsListEditorValueImpl.java:190)
at de.espirit.firstspirit.store.access.DataUtil.copy(DataUtil.java:67)
at de.espirit.firstspirit.client.gui.tree.store.pagestore.GomModuleView.adopt(GomModuleView.java:343)
at de.espirit.firstspirit.client.gui.GomModulePanel.adopt(GomModulePanel.java:92)
......
Ist Feld auch in der Datenbank vorhanden, schau dir mal das komplette Schema in dem Beispielprojekt an.
Das Feld ist in der Datenbank vorhanden und wurde auch gemappt.
Bei der NullPointerException an dieser Stelle handelt es sich um einen Fehler, der mit dem nächsten Build behoben sein wird. Leider weiß ich um keinen Workaround an dieser Stelle.
Interne ID ist #105226
Nachrag: Bitte mal prüfen, ob alle Eingabekomponenten auf eine Spalte abgebildet werden und evtl. nachholen (oder Komponente entfernen).