CMS_INPUT_NUMBER
Inhaltsverzeichnis |
zum Beispiel |
zu den Methoden: Number |
CMS_INPUT_NUMBER
Diese Eingabekomponente dient zur Eingabe von Zahlenwerten, wobei der Vorlagenentwickler sowohl den Wertebereich (z. B. über die Parameter max und min) als auch die Art der einpflegbaren Zahlen (Ganzzahl, Dezimalzahl, ... über den Parameter type) sowie ein beliebiges Anzeigeformat für die Zahlen (über den Parameter format) festlegen kann.
In die Eingabekomponente können je nach Konfiguration und Sprache nur Ziffern, ein Dezimal-Trennzeichen (z. B. ein Komma, wenn Deutsch als Client-Sprache gewählt wurde), ein führendes Minus-Zeichen sowie das Exponentialzeichen E eingegeben werden. Gruppierungs-Trennzeichen (z. B. ein Punkt, wenn Deutsch als Client-Sprache gewählt wurde), runde Klammern, Leerzeichen etc. sind nicht zulässig. Siehe dazu auch Parameter format. |
Access-API Anwendungsbeispiel
Die Beispiel-Implementierung NumberEditorValueExample veranschaulicht einige einfache Anwendungsfälle für den Lesenden-, Schreibenden-, Erstellenden-Zugriff auf das Daten-Objekt (NumberEditorValue) und dessen innerer Daten-Container (java.lang.Number) der Eingabekomponente anhand der FirstSpirit Access-API.
- Anwendungs-Beispiel: NumberEditorValueExample
- Daten-Objekt: NumberEditorValue
- Container-Typ: java.lang.Number
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
Parameter
Der nachfolgenden Tabelle können die Parameter der Eingabekomponente NUMBER 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 |
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 |
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 |
editable
Mit dem Parameter editable kann festgelegt werden, ob die Bearbeitung einer Eingabekomponente zulässig ist oder nicht.
Wird der Parameter weggelassen, so ist die Bearbeitung der Eingabekomponente möglich.
Bei der Angabe von NO (...editable="NO"...) ist eine Bearbeitung der Eingabekomponente nicht möglich.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
editable | Nein | 3.1 | YesNo | YES |
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 |
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 |
length
Mit dem Parameter length kann die Breite der Eingabekomponente festgelegt werden.
Als Wert erwartet der Parameter eine Ganzzahl.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
length | Nein | 2.0 | PositiveInteger | Keiner |
max
Mit dem Parameter max kann der maximale Zahlenwert, der in die Eingabekomponente eingegeben werden darf, angegeben werden.
Standardmäßig kann ein Zahlenwert in beliebiger Höhe eingetragen werden. Wurde mit max ein Wert angegeben, erscheint ein entsprechender Hinweis, wenn ein höherer Zahlenwert als der über max angegebene in die Eingabekomponente gespeichert werden soll.
Der Parameter erwartet als Wert eine Dezimalzahl vom Datenformat "Double". Als Trennzeichen für die Nachkommastellen muss dabei ein Punkt verwendet werden, z.B. "3.5". Wird eine ganze Zahl angegeben, wird beim Speichern der Vorlage die Ganzzahl automatisch um ".0" ergänzt.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
max | Nein | 3.0 | Double | Keiner |
min
Mit dem Parameter min kann der minimale Zahlenwert, der in die Eingabekomponente eingegeben werden darf, angegeben werden.
Standardmäßig kann ein Zahlenwert in beliebiger Höhe eingetragen werden. Wurde mit min ein Wert angegeben, erscheint ein entsprechender Hinweis, wenn ein niedrigerer Zahlenwert als der über min angegebene in der Eingabekomponente gespeichert werden soll.
Der Parameter erwartet als Wert eine Dezimalzahl vom Datenformat "Double". Als Trennzeichen für die Nachkommastellen muss dabei ein Punkt verwendet werden, z.B. "3.5". Wird eine ganze Zahl angegeben, wird beim Speichern der Vorlage die Ganzzahl automatisch um ".0" ergänzt.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
min | Nein | 3.0 | Double | Keiner |
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 |
singleLine
Mit dem Parameter singleLine kann festgelegt werden, ob eine Eingabekomponente in einer Zeile (ohne Rahmen) dargestellt werden soll oder nicht.
Wird der Parameter nicht angegeben so wird die Eingabekomponente im in einer Zeile - ohne Rahmen - dargestellt.
Bei der Angabe von NO (...singleLine="NO"...) wird die Eingabekomponente zweizeilig mit Rahmen dargestellt.
Um ein einheitliches Layout der Eingabekomponenten zu gewährleisten ist es empfehlenswert für die Eingabekomponenten, die dieses Attribut unterstützen (z.B. COMBOBOX, DATE, NUMBER, TEXT und TOGGLE) singleLine="NO", anzugeben.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
singleLine | Nein | 4.0 | YesNo | YES |
type
Mit dem Parameter type kann der Zahlen-Typ definiert werden, der für die Anzeige und Speicherung von Zahlen, die in CMS_INPUT_NUMBER eingegeben werden, herangezogen werden soll.
Es stehen zwei Typen zur Auswahl:
- LONG: Zahlen werden im Format long integer verarbeitet. Dabei handelt es sich um Ganzzahlen, die zwischen -263 und 263-1 liegen. Sie können einen Speicherplatz von bis zu 8 Bytes einnehmen (siehe java.lang.Long). Beispiel: ...type="LONG"...
- DOUBLE: Zahlen werden im Format double verarbeitet. Dabei handelt es sich um Gleitkommazahlen, die zwischen 2-1074 und (2-2-52) * 21023 liegen. Sie können einen Speicherplatz von bis zu 8 Bytes einnehmen (siehe java.lang.Double). Beispiel: ...type="DOUBLE"...
Der Standardwert für type ist LONG, so dass standardmäßig lediglich Ganzzahlen in der Eingabekomponente zugelassen sind.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
type | Nein | 3.0 | NumberType | LONG |
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 |
format | Nein | 3.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 |
format
Mit dem Parameter format kann festgelegt werden, wie Zahlen innerhalb der Eingabekomponente dargestellt werden sollen. Dabei werden auch länderspezifische Besonderheiten berücksichtigt.
Dazu wird eine Formatierungsanweisung (pattern) angegeben. Hierbei handelt es sich im Prinzip um eine Vorlage, über die z.B. festgelegt werden kann, ob und welche Symbole z.B. für Dezimal-Trennzeichen (Komma oder Punkt) verwendet und wie viele Nachkommastellen ausgegeben werden sollen etc. Nach dem Verlassen des Bearbeitungs-Modus' werden die vom Redakteur eingegebenen Zahlen (bei Bedarf) an das in der Formatierungsanweisung geforderte Format angepasst. Der Wert der vom Redakteur eingegebenen Zahl wird dabei aber nie verändert.
Für die Formatierungsanweisung können folgende Symbole verwendet werden:
- 0
Platzhalter für Ziffern. Mit der Anzahl der Nullen können entweder Stellen, die vom Redakteur nicht eingegeben werden, mit Nullen aufgefüllt werden oder es kann vorgegeben werden, wie viele Nachkommastellen eingegeben werden können.
- Fall 1: Wird 0 in einer Formatierungsanweisung ohne Punkt oder vor einem Punkt (siehe unten) verwendet, wirkt sich die Anzahl der angegebenen Nullen auf die Eingabe des Redakteurs aus, wenn die Anzahl der Nullen in der Formatierungsanweisung größer ist als die Stellen der vom Redakteur eingegebenen Zahl: die Stellen, die in der Eingabe des Redakteurs nicht belegt sind, werden mit Nullen aufgefüllt.
Beispiel: Mit der Formatierungsanweisung "00" wird aus einer "3", die in die Eingabekomponente eingegeben wird, nach dem Speichern eine "03". - Fall 2: Wird 0 in einer Formatierungsanweisung hinter einem Punkt verwendet, können nur so viele Nachkommastellen in die Eingabekomponente eingegeben werden, wie Nullen in der Formatierungsanweisung angegeben sind. Nachkommastellen, die von der Formatierungsanweisung gefordert, aber vom Redakteur nicht belegt werden, werden mit Nullen aufgefüllt.
Beispiele: Mit der Formatierungsanweisung "0.00" können nur zwei Nachkommastellen eingegeben werden. Wird nur eine Nachkommastelle angegeben, wird eine Null hinzugefügt: aus "012,3" wird nach dem Speichern "12,30".
- Fall 1: Wird 0 in einer Formatierungsanweisung ohne Punkt oder vor einem Punkt (siehe unten) verwendet, wirkt sich die Anzahl der angegebenen Nullen auf die Eingabe des Redakteurs aus, wenn die Anzahl der Nullen in der Formatierungsanweisung größer ist als die Stellen der vom Redakteur eingegebenen Zahl: die Stellen, die in der Eingabe des Redakteurs nicht belegt sind, werden mit Nullen aufgefüllt.
- #
Platzhalter für Ziffern. Ist die Stelle in der Eingabe des Redakteurs nicht belegt, bleibt sie leer. Dadurch werden führende Nullen sowie Nullen hinter Kommata nicht angezeigt. Wird # hinter einem Punkt (siehe unten) verwendet, können nur so viele Nachkommastellen in die Eingabekomponente eingegeben werden, wie # in der Formatierungsanweisung angegeben sind.
Beispiele: Mit der Formatierungsanweisung "#.#" kann nur eine Nachkommastelle eingegeben werden. Aus "012,3" wird nach dem Speichern "12,3". - . (Punkt)
Dezimal-Trennzeichen, trennt Vor- und Nachkommastellen. Es wird nur berücksichtigt, wenn auch type="DOUBLE" (siehe Parameter type oben) gesetzt ist.
Es darf nur ein Dezimal-Trennzeichen in einer Formatierungsanweisung verwendet werden. Wird kein Dezimal-Trennzeichen angegeben, kann keine Dezimalzahl in die Eingabekomponente eingegeben werden. Das Dezimal-Trennzeichen muss in Abhängigkeit von der über die FirstSpirit-Startseite gewählten Client-Sprache ("Locale") in die Eingabekomponente eingegeben werden, also z.B. , (Komma), wenn Deutsch und . (Punkt), wenn Englisch als Client-Sprache gewählt ist.
Beispiel: siehe Beispiele zu 0 und # - , (Komma)
Gruppierungs-Trennzeichen. Für eine bessere Lesbarkeit großer Zahlen können über das Gruppierungs-Trennzeichen , z.B. die Ziffern einer Zahl bei der niedrigsten Stelle beginnend in Dreiergruppen zusammengefasst werden. Bei Angabe mehrerer , innerhalb einer Formatierungsanweisung wird immer nur das letzte ausgewertet. Das Gruppierungs-Trennzeichen muss in Abhängigkeit von der über die FirstSpirit-Startseite gewählten Client-Sprache ("Locale") in die Eingabekomponente eingegeben werden, also z.B. . (Punkt), wenn Deutsch und , (Komma), wenn Englisch als Client-Sprache gewählt ist. Es kann darüber hinaus mit dem Punkt (siehe oben) kombiniert werden.
Beispiel: Mit der Formatierungsanweisung ",000.00" wird aus "12345678,9" nach dem Speichern "12.345.678,90" - E (Exponential-Zeichen)
Die Zahl wird in Exponential-Schreibweise dargestellt.
Beispiel: Mit der Formatierungsanweisung "##E0" wird aus "1234567890" nach dem Speichern "12E8".
Die Anzeige in der Eingabekomponente erfolgt in Abhängigkeit der gewählten Client-Sprache. |
Bei der Verwendung mehrerer Symbole muss darauf geachtet werden, dass diese nicht miteinander in Konflikt stehen. Wird eine ungültige Formatierungsanweisung angegeben, ist keine Eingabe in die Eingabekomponente möglich. |
Für die Ausgabe von (sprachspezifischen) Währungssymbolen, Prozent- und Promillezeichen sowie individuellem Text kann die Methode format (Datentyp Number) verwendet werden. |
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
format | Nein | 3.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 |
Beispiel
Ein Beispiel für die Eingabekomponente "CMS_INPUT_NUMBER":
<CMS_INPUT_NUMBER useLanguages="YES" name="BEZEICHNER">
<LANGINFOS>
<LANGINFO lang="*" label="TEXT" description="TEXT"/>
<LANGINFO lang="DE" label="TEXT" description="TEXT"/>
<LANGINFO lang="EN" label="TEXT" description="TEXT"/>
</LANGINFOS>
</CMS_INPUT_NUMBER>
Für die Ausgabe der NUMBER kann eine einfache $CMS_VALUE(...)$-Anweisung verwendet werden, oder der Vorlagenentwickler verwendet ein $CMS_IF(...)$, um den Wert des Formulars einer NUMBER abzufragen.
$CMS_IF(st_number > 0)$
$CMS_VALUE(st_number)$ * 4 = $CMS_VALUE(st_number * 4)$<br>
$CMS_END_IF$
Die Ausgabe sieht dann wie folgt aus.
223 * 4 = 892<br>
Weiterführende Themen |
---|
$CMS_IF(...)$-Anweisung, $CMS_VALUE(...)$-Anweisung |