FS_DATASET
Inhaltsverzeichnis |
zum Beispiel |
zu den Methoden: DatasetContainer |
Über die Eingabekomponente FS_DATASET wird, analog zur Eingabekomponente CMS_INPUT_OBJECTCHOOSER, ein Datensatz aus der Datenquellen-Verwaltung referenziert.
Im Gegensatz zur Eingabekomponente CMS_INPUT_OBJECTCHOOSER wird in FS_DATASET die Auswahl nicht auf Datensätze einer definierten Zieltabelle eingeschränkt. Stattdessen kann die gewünschte Tabelle über einen Auswahldialog gewählt werden. Dabei werden gleichzeitig die Zieltabelle und der gewünschte Datensatz ausgewählt.
Die neue Eingabekomponente bietet darüber hinaus alle Bearbeitungsmöglichkeiten, die auch für die Eingabekomponenten CMS_INPUT_OBJECTCHOOSER möglich sind: Verändern einzelner Datensätze, Anlegen neuer Datensätze in der Datenquelle, Entfernen von Datensätzen aus der Datenquelle (nur in der Datenquellen-Verwaltung).
Access-API Anwendungsbeispiel
Die Beispiel-Implementierung DatasetEditorValueExample veranschaulicht einige einfache Anwendungsfälle für den Lesenden-, Schreibenden-, Erstellenden-Zugriff auf das Daten-Objekt (DatasetEditorValue) und dessen innerer Daten-Container (DatasetContainer) der Eingabekomponente anhand der FirstSpirit Access-API.
- Anwendungs-Beispiel: DatasetEditorValueExample
- Daten-Objekt: DatasetEditorValue
- Container-Typ: DatasetContainer
Die Eingabekomponente FS_DATASET wird im FirstSpirit-WebClient unterstützt. Zu Einschränkungen siehe Kapitel Einschränkungen in WebEdit. |
Pflichtparameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Pflichtparameter
Optionaler Parameter
Optionaler Parameter
Optionaler Parameter
Pflichtparameter
Parameter
Der nachfolgenden Tabelle können die Parameter der Eingabekomponente DATASET entnommen werden.
name
Das Attribut "name" ist der Variablenname einer Eingabekomponente, mit dem in den Vorlagen - mit Hilfe von $CMS_VALUE()$ - das Ergebnisobjekt der Eingabekomponente verwendet oder der Inhalt ausgegeben werden kann.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
name* | Ja | 3.1 | Designator | Keiner |
allowChoose
Mit dem Parameter allowChoose kann festgelegt werden, ob in der Eingabekomponente bestehende Datensätze ausgewählt werden dürfen oder nicht.
Standardmäßig ist die Auswahl von Datensätzen möglich.
Wird allowChoose mit NO (allowChoose="NO") angegeben, so ist eine Auswahl nicht mehr möglich. Datensätze in der Eingabekomponente können dann nur über das Anlegen von neuen Datensätzen hinzugefügt werden.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
allowChoose | Nein | 3.0 | YesNo | YES |
allowDelete
Wird diese Eingabekomponente in der Datenquellen-Verwaltung verwendet (Tabellen-Vorlage), kann über dieses Attribut eingestellt werden, dass ein ausgewählter Datensatz direkt über die Eingabekomponente gelöscht werden kann, ohne zum jeweiligen Datensatz in einer anderen Datenquelle wechseln zu müssen. Mit allowDelete="YES" kann der Datensatz aus der Eingabekomponente und der Datenquelle gleichzeitig entfernt werden. Standardmäßig ist der Parameter auf YES gesetzt. Um das Löschen von Datensätzen zu unterbinden, muss der Parameter auf NO gesetzt werden.
In der Inhalte-Verwaltung (Seiten- oder Absatzvorlage) wird das Löschen von Datensätzen aus einer Eingabekomponente diesen Typs heraus nicht unterstützt. Unabhängig von der Verwendung des Parameters wird das Icon zum Löschen des Datensatzes nicht angezeigt.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
allowDelete | Nein | 4.2 | YesNo | YES |
allowEdit
Mit dem Parameter allowEdit kann in der Eingabekomponente das Bearbeiten von Einträgen erlaubt oder aber unterbunden werden.
Wird der Parameter nicht angegeben, so können die Einträge bearbeitet werden.
Das Bearbeiten von Einträgen ist mit der Angabe NO (...allowEdit="NO"...) nicht möglich.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
allowEdit | Nein | 4.2 | YesNo | YES |
allowEmpty
Mit dem Parameter "allowEmpty" wird festgelegt, ob für eine Eingabekomponente ein Wert angegeben werden muss oder nicht.
Bei der Angabe von allowEmpty="YES" ist eine Eingabe nicht zwingend, bei allowEmpty="NO" jedoch schon.
Eingabekomponenten mit allowEmpty="NO" werden auch als Pflichteingabekomponenten bezeichnet.
Der Standardwert für allowEmpty ist YES.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
allowEmpty | Nein | 3.0 | YesNo | YES |
allowNew
Mit dem Parameter allowNew kann das Anlegen von neuen Einträgen erlaubt oder aber unterbunden werden.
Wird der Parameter nicht angegeben, so können neue Einträge angelegt werden.
Bei der Angabe von NO (...allowNew="NO"...) können keine neue Einträge angelegt werden.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
allowNew | Nein | 4.2 | YesNo | YES |
convertEntities
Mit dem Attribut "convertEntities" werden Sonderzeichen, die in die Eingabekomponenten eingeben wurden, bei der Ausgabe in HTML-Zeichen umgewandelt.
Es gibt hier drei Ausprägungen:
- convertEntities="NONE" (Standard)
- convertEntities="STANDARD"
- convertEntities="QUOTE"
Bei NONE werden keinerlei Konvertierungsregeln angewendet.
Wird STANDARD angegeben, so werden die Konvertierungsregeln angewendet, die im Bereich "convert" der ausgewählten Konvertierungsregel des Präsentationskanales stehen.
Die Angabe QUOTE schließt STANDARD explizit mit ein. Es wird jedoch zusätzlich der Bereich "quote" der Konvertierungsregel angewendet.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
convertEntities | Nein | 2.0 | ConvertEntity | NONE |
hFill
Die Anzeige einer Eingabekomponente erfolgt immer mit einer vordefinierten Breite.
Ist es aber gewünscht, dass die Eingabekomponente die volle zur Verfügung stehende Anzeigebreite nutzt, ist der Parameter hFill mit dem Wert YES anzugeben.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
hFill | Nein | 2.0 | YesNo | NO |
height
Mit dem Parameter height wird die Anzeigehöhe der Eingabekomponente in Pixeln festgelegt.
Als Wert erwartet der Parameter eine Ganzzahl. Wird der Parameter nicht angegeben, wird die Höhe der Eingabekomponente standardmäßig auf 500 Pixel gesetzt.
Befindet sich die Eingabekomponente in einer Gruppierung (CMS_GROUP), richtet sich die Höhe nach der Höhe der höchsten Eingabekomponente innerhalb der Gruppierung.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
height | Nein | 4.2 | PositiveInteger | 500 |
hidden
Mit dem Parameter "hidden" kann eine Eingabekomponente für den Redakteur ausgeblendet werden.
Bei der Angabe von hidden="YES" wird die Eingabekomponente ausgeblendet, bei hidden="NO" nicht.
Der Standardwert für hidden ist NO, so dass Eingabekomponenten standardmäßig für den Redakteur sichtbar sind.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
hidden | Nein | 4.0.44 | YesNo | NO |
mode
Über diesen Parameter kann die Anzeige und die Auswahl von Datensätzen im JavaClient gesteuert werden.
mode="dialog"
Standardmäßig wird für die Auswahl eines Datensatzes über diese Eingabekomponente ein Auswahl-Dialog geöffnet und es werden die Daten aller Spalten des gewählten Datensatzes dargestellt (entspricht mode="dialog").
mode="combobox"
Wurde über die Tags SOURCES / CONTENT eine Datenquelle definiert, aus der Datensätze ausgewählt werden können, kann die Auswahl der Datensätze dieser Datenquelle über eine Combobox erfolgen. Dazu muss mode="combobox" gesetzt werden.
Ist auf der Datenquelle ein Filter auf der Basis einer Abfrage gesetzt, wird dieser bei der Anzeige der auswählbaren Datensätze berücksichtigt.
Standardmäßig werden dabei die IDs der Datensätze angezeigt, die Anzeige kann aber über den Parameter expression dynamisch gestaltet werden (z. B. expression="#item.Headline_DE", wobei Headline_DE der Spaltenname ist, wie er im Datenbank-Schema-Editor angegeben wurde und beispielsweise auf dem Register "Mapping" der jeweiligen Tabellenvorlage in den sprachabhängigen Spalten (DE, EN etc.) angezeigt wird.)
mode="sheet"
Mithilfe von mode="sheet" kann statt der Daten aller Spalten des gewählten Datensatzes eine verkürzte, übersichtlichere Anzeige verwendet werden. Dazu wird auf die Definition auf dem Register Schnipsel auf der zugrundeliegenden Tabellenvorlage zurückgegriffen. Die Auswahl erfolgt wie bei mode="dialog" über einen Auswahldialog.
Im WebClient hat dieser Parameter keine Auswirkung auf die Darstellung und den Auswahlmodus.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
mode | Nein | 4.2 | DatasetMode | DIALOG |
noBreak
Mit dem Parameter noBreak kann der automatische Zeilenumbruch nach einer Eingabekomponente unterdrückt werden.
Um den automatischen Zeilenumbruch zu unterdrücken, ist der Parameter noBreak mit dem Wert "YES" anzugeben (noBreak="YES").
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
noBreak | Nein | 2.0 | YesNo | NO |
preset
Mit dem Attribut preset kann festgelegt werden, wie Vorgabewerte in einer Eingabekomponente behandelt werden (vgl. dazu auch Kapitel Vorgabewerte). Wird preset="default" gesetzt, wird der im Formular definierte Rückgriffwert verwendet. Nachträgliche Änderungen im Formular an diesem Wert wirken sich auf alle Verwendungen in den vom Redakteur gepflegten Eingabekomponenten aus, solange bis ein manueller Wert in die Eingabekomponente gesetzt wird. Dies ist die Standardeinstellung. Wird preset="copy" gesetzt, wird der durch den Redakteur gewählte Wert "hart" in der Eingabekomponente gespeichert. Nachträgliche Änderungen am Vorgabewert im Formular wirken sich nicht aus.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
preset | Nein | 4.0 | Preset | DEFAULT |
useLanguages
Mit dem Parameter useLanguages kann festgelegt werden, ob eine Eingabekomponente für verschiedene Sprachen unterschiedliche bzw. abweichende Werte speichern soll oder nicht (mehrsprachige Pflege).
Wird der Parameter nicht angegeben so werden standardmäßig abweichende Werte für die verschiedenen Sprachen gespeichert.
Bei der Angabe von NO (...useLanguages="NO") wird ein Wert für alle Sprachen gespeichert.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
useLanguages | Nein | 2.0 | YesNo | YES |
LANGINFOS
Über das Tag LANGINFOS können für jede Eingabekomponente sprachabhängige Angaben definiert werden, z. B. wie die Eingabekomponente in den unterschiedlichen Projektsprachen betitelt sein soll (Parameter label), welcher Tooltip angezeigt werden soll (Parameter description) usw. Aus Gründen der Übersichtlichkeit werden dabei Definitionen, die in mehreren Sprachen identisch sind, zusammengefasst. So wird z. B. aus
<LANGINFOS>
<LANGINFO lang="*" label="Date" format="dd.MM.yy"/>
<LANGINFO lang="DE" label="Date" format="dd.MM.yy"/>
<LANGINFO lang="EN" label="Date" format="MM/dd/yy"/>
</LANGINFOS>
beim Speichern
<LANGINFOS>
<LANGINFO lang="*" label="Date" format="dd.MM.yy"/>
<LANGINFO lang="EN" label="Date" format="MM/dd/yy"/>
</LANGINFOS>
Die Definition für den Rückfallwert (*) bleibt dabei immer erhalten, von Definitionen für Sprachen mit gleichen Werten bleibt immer die oberste erhalten.
Ab FirstSpirit-Version 4.2R4 kann der Rückfallwert weggelassen werden. Dann wird beim Speichern automatisch die zuerst definierte Sprache als Rückfallwert verwendet, z. B. wird aus
<LANGINFOS>
<LANGINFO lang="EN" label="Date"/>
<LANGINFO lang="DE" label="Datum"/>
</LANGINFOS>
beim Speichern
<LANGINFOS>
<LANGINFO lang="*" label="Date"/>
<LANGINFO lang="DE" label="Datum"/>
</LANGINFOS>
LANGINFO
Mit dem Tag LANGINFO werden Werte oder Attribute für eine Sprache oder aber für die Verwendung als Rückfallwerte angegeben.
Um Werte bzw. Attribute für eine Sprache anzugeben ist im Parameter lang die Abkürzung der Projektsprache anzugeben:
...
<LANGINFO lang="DE".../>
...
Rückfallwerte werden mit dem speziellen Sprachkürzel * ("für alle Sprachen") angegeben:
...
<LANGINFO lang="*".../>
...
Bei dem Parameter lang handelt es sich um einen Pflichtparameter.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
lang* | Ja | 3.1 | LanguageAbbreviation | Keiner |
description | Nein | 3.1 | String | Keiner |
expression | Nein | 4.0 | String | Keiner |
label | Nein | 3.1 | String | Keiner |
lang
Mit dem Parameter lang wird das Sprachkürzel, das in den Servereigenschaften im Feld Abkürzung eingetragen ist (siehe FirstSpirit Handbuch für Administratoren, Kapitel "Sprach-Vorlagen"), angegeben, um festzulegen für welche Projektsprachen die Definitionen gelten sollen, z.B. DE für Deutsch, EN für Englisch, FR für Französisch usw. Folgende Zeichen können dabei beliebig oft angegeben werden: -, _, 0-9 und A-Z. Kleinbuchstaben werden nach dem Speichern der Vorlage automatisch in Großbuchstaben umgewandelt. Alternativ kann * für Rückfallwerte verwendet werden.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
lang* | Ja | 3.1 | LanguageAbbreviation | Keiner |
description
Mit dem Parameter description kann eine Beschreibung angegeben werden, die zur Anzeige eines Tooltipps (Mouse-Over) genutzt wird.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
description | Nein | 3.1 | String | Keiner |
expression
Wird die Eingabekomponente FS_DATASET in der Datenquellen-Verwaltung verwendet, können mit dem Parameter expression in der Spaltenübersicht Werte einer Spalte aus einer Tabelle ausgegeben werden, die über einen Fremdschlüssel mit der Datenquelle verbunden ist.
Dazu muss FS_DATASET in einer Tabelle A definiert sein, die mit der Tabelle B, in einer 1:N-Fremdschlüsselbeziehung steht. Tabelle A ist somit die Ziel-Tabelle (N Elemente), Tabelle B ist die Quell-Tabelle (1 Element). FS_DATASET muss mit dem Fremdschlüssel verknüpft sein.
In FS_DATASET kann dann über expression auf die in die Spalten der Tabelle B eingepflegten Werte zugegriffen werden.
Hierfür steht innerhalb von expression das Systemobjekt #item zur Verfügung. Das Systemobjekt #item repräsentiert den jeweiligen in der Eingabekomponente ausgewählten Datensatz. Auf die Werte der einzelnen Spalten des Datensatzes kann über die Punktnotation zurückgegriffen werden. Im Beispiel wird für die Beschriftung in der Spaltenüberschrift der Wert der Spalte Headline_DE (#item.Headline) verwendet.
Weiterhin werden über den Ausdrucksmechanismus sprachspezifische Endungen automatisch gesetzt, sollten sie vorhanden sein, d. h. folgende Definition ist möglich:
<FS_DATASET name="cs_dataset">
<LANGINFOS>
<LANGINFO lang="*" label="News" expression="#item.Headline_DE"/>
</LANGINFOS>
<SOURCES>
<CONTENT name="news"/>
</SOURCES>
</FS_DATASET>
Es ist darauf zu achten, dass der Spaltenname korrekt angegeben wird und die Spalten auch tatsächlich in der angegebenen Tabelle vorhanden ist, da sonst kein Wert in der Datenquellen-Übersicht angezeigt wird. |
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
expression | Nein | 4.0 | String | Keiner |
label
Mit dem Parameter label wird die Oberflächenbeschriftung für Eingabe- und Visualisierungkomponenten angegeben.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
label | Nein | 3.1 | String | Keiner |
LEGACYTEMPLATE
Dieses Tag muss verwendet werden, wenn von der Verwendung von CMS_INPUT_OBJECTCHOOSER in einem Projekt zu FS_DATASET gewechselt werden soll:
Damit die Daten, die durch den Redakteur bereits über CMS_INPUT_OBJECTCHOOSER eingegeben wurden, weiterhin gespeichert bleiben, muss zusätzlich zu der Datenquelle, die über SOURCES / CONTENT definiert wird, der eindeutige Bezeichner der Tabellenvorlage aus dem zu migrierenden CMS_INPUT_OBJECTCHOOSER-Formular angegeben werden, z. B.
<LEGACYTEMPLATE>Products.products</LEGACYTEMPLATE>
<SOURCES>
<CONTENT name="produkte"/>
</SOURCES>
Für "neue" FS_DATASET-Komponenten, die neu im Projekt befüllt werden sollen, wird dieses Tag nicht benötigt.
TEXT
An dieser Stelle wird der eindeutige Bezeichner der Tabellenvorlage aus dem zu migrierenden CMS_INPUT_OBJECTCHOOSER-Formular angegeben.
SOURCES
Mit dem Tag SOURCES ist es möglich, die Auswahl oder Anzeige auf Datenquellen der Datenquellen-Verwaltung einzuschränken.
Bei SOURCES handelt es sich um eine Positivlist, d.h. es werden nur die angegebenen Datenquellen zugelassen. Wird SOURCES nicht angegeben, kann aus allen Datenquellen des Projekts ausgewählt werden.
Um eine Datenquelle zuzulassen, ist jeweils ein CONTENT-Tag anzugeben.
CONTENT
Mit dem CONTENT-Tag wird eine Datenquelle angegeben, die berücksichtigt werden soll.
Für jede gewünschte Datenquelle wird ein CONTENT-Tag definiert.
Soll FS_DATASET auf eine Fremdschlüsselbeziehung abgebildet ("gemappt") werden, darf ausschließlich ein CONTENT-Tag angegeben werden.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
name* | Ja | 4.2 | ReferenceName | Keiner |
name
Für den Parameter name ist ein gültiger Name einer Datenquelle anzugeben.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
name* | Ja | 4.2 | ReferenceName | Keiner |
Beispiel
Ein Beispiel für die Eingabekomponente FS_DATASET:
<FS_DATASET name="BEZEICHNER" hFill="YES" useLanguages="YES">
<LANGINFOS>
<LANGINFO lang="DE" label="TEXT" description="TEXT"/>
<LANGINFO lang="*" label="TEXT" description="TEXT"/>
</LANGINFOS>
<SOURCES>
<CONTENT name="BEZEICHNER"/>
</SOURCES>
</FS_DATASET>
Abbildung und Migration der Eingabekomponente CMS_INPUT_OBJECTCHOOSER
Mithilfe der Eingabekomponente FS_DATASET können die Funktionalitäten der Eingabekomponente CMS_INPUT_OBJECTCHOOSER folgendermaßen genau abgebildet werden.
Beispiel-Formular CMS_INPUT_OBJECTCHOOSER
<CMS_INPUT_OBJECTCHOOSER name="st_datasets" allowDelete="no" table="DB_Schema.kontakte">
<LANGINFOS>
<LANGINFO lang="*" label="Dataset" description="Please select a dataset"/>
<LANGINFO lang="DE" label="Datensatz" description="Bitte wählen Sie einen Datensatz"/>
</LANGINFOS>
</CMS_INPUT_OBJECTCHOOSER>
Beispiel-Formular FS_DATASET
<FS_DATASET name="st_datasets2" allowDelete="no">
<LANGINFOS>
<LANGINFO lang="*" label="Dataset" description="Please select a dataset"/>
<LANGINFO lang="DE" label="Datensatz" description="Bitte wählen Sie einen Datensatz"/>
</LANGINFOS>
<LEGACYTEMPLATE>DB_Schema.kontakte</LEGACYTEMPLATE>
<SOURCES>
<CONTENT name="kontakte"/>
</SOURCES>
</FS_DATASET>
Wird der über name definierte Variablenname der Eingabekomponente bei einer Umstellung von CMS_INPUT_OBJECTCHOOSER zu FS_DATASET wie im Beispiel beibehalten, bleiben zuvor in CMS_INPUT_OBJECTCHOOSER gespeicherte Daten nach Umstellung auf FS_DATASET weiterhin erhalten und können dort weiterbearbeitet werden. |
Bei der Migration von CMS_INPUT_OBJECTCHOOSER zu FS_DATASET ist es darüber hinaus wichtig, die Tabellenvorlage, die im CMS_INPUT_OBJECTCHOOSER-Formular über table angegeben war, im neuen FS_DATASET-Formular innerhalb des öffnenden und schließenden LEGACYTEMPLATE-Tags anzugeben. |