Textmarke Formatieren
Textmarke Formatieren
Die einzelnen Textmarken können innerhalb der Druckdatei entsprechend formatiert werden. So kann z.B. eine Textmarke, welche als Ergebnis 1000 ausgibt, also ohne Tausender-Trennzeichen oder Nachkommastellen, innerhalb der Druckdatei mit einer Formatierung versehen werden, so dass eben z.B. ein Tausender-Trennzeichen oder Nachkommastellen mit ausgedruckt werden.
Diese Formatierungen können auf alle Textmarken angewendet werden, allerdings ist hierbei zu beachten, dass die Formatierung auch zu dem jeweiligen Inhalt der einzelnen Textmarke passt. Bei einer Textmarke, die ein Datum ausgibt, macht es z.B. wenig Sinn, ein Tausender-Trennzeichen einzufügen.
Formatierungstypen
Es gibt folgende Formatierungstypen:
Angabe für die Textmarke (data type indicator) Beschreibung
d Dezimal
Das Argument muss ein Integer Wert sein. Der Wert wird in einen String umgewandelt, der aus Dezimalzahlen besteht. Wenn der Format-String einen Bezeichner für die Genauigkeit enthält, muss der resultierende String mindestens die angegebene Anzahl von Stellen aufweisen. Enthält er weniger Stellen, wird der String auf der linken Seite mit Nullen aufgefüllt.
f Fest
Das Argument muss ein Gleitkommawert sein. Der Wert wird in einen String der folgenden Form umgewandelt: "-ddd.ddd...". Wenn es sich um eine negative Zahl handelt, beginnt der String mit einem Minuszeichen. Die Anzahl der Stellen nach dem Dezimalkomma wird durch den Genauigkeitsbezeichner im Format String festgelegt. Ist dieser nicht vorhanden, wird eine vorgegebene Genauigkeit Von zwei Dezimalstellen verwendet.
n Zahl
Das Argument muss ein Gleitkommawert sein. Der Wert wird in einen String der folgenden Form umgewandelt: "-d,ddd,ddd.ddd...". Das Format "n" entspricht dem Format "f", allerdings enthält der resultierende String Tausender-Trennzeichen.
m Währung
Das Argument muss ein Gleitkommawert sein. Der Wert wird in einen String umgewandelt, der einen Währungsbetrag darstellt. Die Steuerung der Konvertierung erfolgt mithilfe der globalen Variablen CurrencyString, CurrencyFormat, NegCurrFormat, ThousandSeparator, DecimalSeparator und CurrencyDecimals oder deren Entsprechungen in einer TFormatSettings Datenstruktur. Enthält der Format-String einen Genauigkeitsbezeichner, setzt dieser den Wert in der globalen Variablen CurrencyDecimals bzw. in deren TFormatSettings-Entsprechung außer Kraft.
s String
Das Argument muss ein Zeichen oder ein String sein. Der String bzw. das Zeichen wird anstelle des Formatbezeichners eingefügt. Wenn im Format-String ein Genauigkeitsbezeichner angegeben ist, bestimmt er die maximale Länge des resultierenden Strings. Ist das Argument ein String, der diese Maximallänge überschreitet, wird der String abgeschnitten
x Hexadezimal
Das Argument muss ein Integerwert sein. Der Wert wird in einen String umgewandelt, der aus hexadezimalen Stellen besteht. Wenn der Format String einen Bezeichner für die Genauigkeit enthält, muss der resultierende String mindestens die angegebene Anzahl von Stellen aufweisen. Enthält er weniger Stellen, wird der String auf der linken Seite mit Nullen aufgefüllt.
Formatierung auf Textmarken anwenden
Im Folgenden wird anhand eines Beispiels erklärt, wie die einzelnen Formatierungstypen auf eine Textmarke angewendet werden können.
Als Beispiel wird die Textmarke MENGE für den Ausdruck des Verkaufslieferschein verwendet. Diese Textmarke gibt die hinterlegte Menge einer Position aus.
Wird die Textmarke MENGE in die Druckdatei für die Artikelposition gesetzt und die Menge liegt bei 2000, sieht das Ergebnis zunächst wie Folgt aus:

Die Menge wird somit standardmäßig ohne Tausender-Trennzeichen oder Nachkommastellen ausgegeben.
In der Druckdatei wird die Textmarke wie Folgt gesetzt:

Mit den Formatierungsmöglichkeiten kann man nun für diese Textmarke den Ausdruck mit Tausender-Trennzeichen oder Nachkommastellen einstellen. Diese Formatierung erfolgt dann direkt in der Druckdatei bei der Textmarke MENGE.
Die Angabe für eine Formatierung wird wie Folgt gesetzt:
TEXTMARKE+"%"+"ANZAHL STELLEN"+"."+"NACHKOMMASTELLE"+"FORMATIERUNGSTYP"
Soll nun für das Beispiel der Textmarke MENGE ein Tausendertrennpunkt und 2 Nachkommastellen gedruckt werden, müsste die Textmarke wie Folgt in der Druckdatei angegeben werden:

Aufbau der Textmarke im Detail:
Bereich in Textmarke Beschreibung
MENGE Textmarke
% Angabe das eine Formatierung erfolgt
4 Länge der Textmarke
. Trennzeichen zwischen Länge und Angabe der Nachkommastellen
2 Angabe der Nachkommastellen
n Formatierungstyp
Das Ergebnis dieser Textmarke sieht im Ausdruck nun wie Folgt aus:

Weitere Beispiele
Textmarke Ergebnis
[Fließkommawerte]
[GESAMTSUMME%10.2n] „ 1.234,44" (rechtsbündig 10 Stellen)
[GESAMTSUMME%-10.2n] „1.234,44 „ (linksbündig 10 Stellen)
[GESAMTSUMME%10.1n] „ 1.234,4"
[GESAMTSUMME%10.3n] „ 1.234,400"
[GESAMTSUMME%10.0n] „ 1.234"
[GESAMTSUMME%-10.0n] „1.234 "
[GESAMTSUMME%10.2f] „ 1234,40" („f" = ohne Tausendertrennzeichen)
[GESAMTSUMME%10.0f] „ 1234" („f" = ohne Tausendertrennzeichen)
[GESAMTSUMME%-10.0f] „1234 " („f" = ohne Tausendertrennzeichen)
[Dezimalwerte (kein Kommawerte)]
[GESAMTSUMME%9d] „ 1234" (9 Stellen, führende Leerzeichen)
[GESAMTSUMME%.9d] „000001234" (9 Stellen, führende Nullen)
[Zeichenwerte]
[Datum] „12.05.2006"
[Datum%.4s] „12.0" (auf 4 Stellen beschränken)
[Datum%.5s] „12.05" (auf 5 Stellen beschränken)
Alternative Formatierung für Angabe von Nachkommastellen und Tausender-Trennpunkt
Es gibt noch eine weitere Formatierungsmöglichkeit von Textmarken, um z.B. bei Beträgen keinen Tausender-Trennpunkt oder das Kennzeichen für die Nachkommastellen als Punkt anzugeben.
*
*
Beispiel:
1.234,56 € → 1234.56
Mit den schon vorhandenen Formatierungsmöglichkeiten werden allerdings z.B. bei Beträgen die größer > 999,99 € sind, immer ein Tausender Trennpunkt angegeben.
Die erweiterte Formatierungsmöglichkeit bietet die Möglichkeit, Beträge in einer beliebigen Formatierung angeben zu können. Dies kann z.B. bei der Verwendung von Beträgen in EAN- bzw. QR Codes genutzt werden.
Der Beispiel-Betrag 1.234,56 € kann so z.B. in 1234.56 formatiert werden. Also es gibt keinen Tauender-Trennpunkt und die Nachkommastellen werden mit einem Punkt angegeben.
Die Textmarke muss dann für den Ausdruck wie Folge angegeben werden:
Zunächst kommt wie gewohnt die Angabe der Textmarke:
[Bruttobetrag
Nun kommt das Zeichen #:
[Bruttobetrag#
Dann kommt die Angabe für die Nachkommastellen:
[Bruttobetrag#0.00
Um nun bei den Nachkommastellen das Komma durch einen Punkt zu ersetzen, muss ein länderspezifisches Kennzeichen für die englische Schreibweise mit angegeben werden.**
**Dies kann z.B. mit der Angabe von &en-GB erfolgen:
[Bruttobetrag#0.00&en-GB
Abgeschlossen wird die Textmarke mit der Positionsangabe sowie ]:
[Bruttobetrag#0.00&en-GB 1000]
Gedruckt wird der Brutto-Betrag in der angegeben Formatierung:
Länderspezifische Formatierungen bei Textmarken mit Zahlen
Es ist möglich auf Textmarken, die Zahlen ausgeben, länderspezifische Formatierung anzuwenden.
Hierdurch kann z.B. bei einer Textmarke, die einen Betrag mit Nachkommastellen ausgibt, das Komma vor den Nachkommastellen durch einen Punkt ersetzt werden.*
*
Beispiel:
1.234,56 € → $1,234.56
Die Formatierung der einzelnen Textmarke wird wie Folgt durchgeführt:
Zunächst wir die gewünschte Textmarke angeben:
[Bruttobetrag
Nun wird die Textmarke mit einer % erweitert:
[Bruttobetrag%
Dann kommen die Angaben zu den gewünschten Nachkommstellen (10.2 = 10 Stellen vor dem Komma und 2 Nachkommastellen) und dem Formatierungstyp (m=money):
[Bruttobetrag%10.2m
Nun kommt die Angabe des entsprechenden Landes. Für z.B. der Anwendung der US-amerikanischen Schreibweise von Beträgen wird nun &en-US angegeben.
[Bruttobetrag%10.2m&en-US
Abgeschlossen wird die Textmarke mit der Positionsangabe sowie ]:
[Bruttobetrag%10.2m&en-US 1000]
Gedruckt wird der Brutto-Betrag nun in der US-amerikanischen Formatierung:
Weitere Beispiele für den Betrag 1.234,56 €
Textmarke Land Ergebnis
[Brutto%10.0m&en-US 1000] English - United States $1,235
[Brutto%10.1m&en-US 1000] English - United States $1,234.6
[Brutto%10.2n&en-US 1000] English - United States 1,234.6
[Brutto%10.2m&ja-JP 1000] Japanese - Japan ¥1,234.56
[Brutto#0.00&en-GB 1000] English - United Kingdom 1234.56
Folgende Länderkennzeichen können verwendet werden:
Language Culture Name Display Name Culture Code ISO 639x Value
af-ZA Afrikaans - South Africa 0x0436 AFK
sq-AL Albanian - Albania 0x041C SQI
ar-DZ Arabic - Algeria 0x1401 ARG
ar-BH Arabic - Bahrain 0x3C01 ARH
ar-EG Arabic - Egypt 0x0C01 ARE
ar-IQ Arabic - Iraq 0x0801 ARI
ar-JO Arabic - Jordan 0x2C01 ARJ
ar-KW Arabic - Kuwait 0x3401 ARK
ar-LB Arabic - Lebanon 0x3001 ARB
ar-LY Arabic - Libya 0x1001 ARL
ar-MA Arabic - Morocco 0x1801 ARM
ar-OM Arabic - Oman 0x2001 ARO
ar-QA Arabic - Qatar 0x4001 ARQ
ar-SA Arabic - Saudi Arabia 0x0401 ARA
ar-SY Arabic - Syria 0x2801 ARS
ar-TN Arabic - Tunisia 0x1C01 ART
ar-AE Arabic - United Arab Emirates 0x3801 ARU
ar-YE Arabic - Yemen 0x2401 ARY
hy-AM Armenian - Armenia 0x042B
Cy-az-AZ Azeri (Cyrillic) - Azerbaijan 0x082C
Lt-az-AZ Azeri (Latin) - Azerbaijan 0x042C
eu-ES Basque - Basque 0x042D EUQ
be-BY Belarusian - Belarus 0x0423 BEL
bg-BG Bulgarian - Bulgaria 0x0402 BGR
ca-ES Catalan - Catalan 0x0403 CAT
zh-CN Chinese - China 0x0804 CHS
zh-HK Chinese - Hong Kong SAR 0x0C04 ZHH
zh-MO Chinese - Macau SAR 0x1404
zh-SG Chinese - Singapore 0x1004 ZHI
zh-TW Chinese - Taiwan 0x0404 CHT
zh-CHS Chinese (Simplified) 0x0004
zh-CHT Chinese (Traditional) 0x7C04
hr-HR Croatian - Croatia 0x041A HRV
cs-CZ Czech - Czech Republic 0x0405 CSY
da-DK Danish - Denmark 0x0406 DAN
div-MV Dhivehi - Maldives 0x0465
nl-BE Dutch - Belgium 0x0813 NLB
nl-NL Dutch - The Netherlands 0x0413
en-AU English - Australia 0x0C09 ENA
en-BZ English - Belize 0x2809 ENL
en-CA English - Canada 0x1009 ENC
en-CB English - Caribbean 0x2409 ENB
en-IE English - Ireland 0x1809 ENI
en-JM English - Jamaica 0x2009 ENJ
en-NZ English - New Zealand 0x1409 ENZ
en-PH English - Philippines 0x3409 ENP
en-ZA English - South Africa 0x1C09 ENS
en-TT English - Trinidad and Tobago 0x2C09 ENT
en-GB English - United Kingdom 0x0809 ENG
en-US English - United States 0x0409 ENU
en-ZW English - Zimbabwe 0x3009 ENW
et-EE Estonian - Estonia 0x0425 ETI
fo-FO Faroese - Faroe Islands 0x0438 FOS
fa-IR Farsi - Iran 0x0429 FAR
fi-FI Finnish - Finland 0x040B FIN
fr-BE French - Belgium 0x080C FRB
fr-CA French - Canada 0x0C0C FRC
fr-FR French - France 0x040C FRA
fr-LU French - Luxembourg 0x140C FRL
fr-MC French - Monaco 0x180C FRM
fr-CH French - Switzerland 0x100C FRS
gl-ES Galician - Galician 0x0456
ka-GE Georgian - Georgia 0x0437
de-AT German - Austria 0x0C07 DEA
de-DE German - Germany 0x0407 DEU
de-LI German - Liechtenstein 0x1407 DEC
de-LU German - Luxembourg 0x1007 DEL
de-CH German - Switzerland 0x0807 DES
el-GR Greek - Greece 0x0408 ELL
gu-IN Gujarati - India 0x0447
he-IL Hebrew - Israel 0x040D HEB
hi-IN Hindi - India 0x0439 HIN
hu-HU Hungarian - Hungary 0x040E HUN
is-IS Icelandic - Iceland 0x040F ISL
id-ID Indonesian - Indonesia 0x0421 IND
it-IT Italian - Italy 0x0410
it-CH Italian - Switzerland 0x0810 ITS
ja-JP Japanese - Japan 0x0411 JPN
kn-IN Kannada - India 0x044B
kk-KZ Kazakh - Kazakhstan 0x043F
kok-IN Konkani - India 0x0457
ko-KR Korean - Korea 0x0412 KOR
ky-KZ Kyrgyz - Kazakhstan 0x0440
lv-LV Latvian - Latvia 0x0426 LVI
lt-LT Lithuanian - Lithuania 0x0427 LTH
mk-MK Macedonian (FYROM) 0x042F MKD
ms-BN Malay - Brunei 0x083E MSB
ms-MY Malay - Malaysia 0x043E MSL
mr-IN Marathi - India 0x044E
mn-MN Mongolian - Mongolia 0x0450
nb-NO Norwegian (Bokmål) - Norway 0x0414 NOR
nn-NO Norwegian (Nynorsk) - Norway 0x0814 NON
pl-PL Polish - Poland 0x0415 PLK
pt-BR Portuguese - Brazil 0x0416 PTB
pt-PT Portuguese - Portugal 0x0816 PIG
pa-IN Punjabi - India 0x0446
ro-RO Romanian - Romania 0x0418 ROM
ru-RU Russian - Russia 0x0419 RUS
sa-IN Sanskrit - India 0x044F
Cy-sr-SP Serbian (Cyrillic) - Serbia 0x0C1A
Lt-sr-SP Serbian (Latin) - Serbia 0x081A
sk-SK Slovak - Slovakia 0x041B SKY
sl-SI Slovenian - Slovenia 0x0424 SLV
es-AR Spanish - Argentina 0x2C0A ESS
es-BO Spanish - Bolivia 0x400A ESB
es-CL Spanish - Chile 0x340A ESL
es-CO Spanish - Colombia 0x240A ESO
es-CR Spanish - Costa Rica 0x140A ESC
es-DO Spanish - Dominican Republic 0x1C0A ESD
es-EC Spanish - Ecuador 0x300A ESF
es-SV Spanish - El Salvador 0x440A ESE
es-GT Spanish - Guatemala 0x100A ESG
es-HN Spanish - Honduras 0x480A ESH
es-MX Spanish - Mexico 0x080A ESM
es-NI Spanish - Nicaragua 0x4C0A ESI
es-PA Spanish - Panama 0x180A ESA
es-PY Spanish - Paraguay 0x3C0A ESZ
es-PE Spanish - Peru 0x280A ESR
es-PR Spanish - Puerto Rico 0x500A ES
es-ES Spanish - Spain 0x0C0A ESN
es-UY Spanish - Uruguay 0x380A ESY
es-VE Spanish - Venezuela 0x200A ESV
sw-KE Swahili - Kenya 0x0441
sv-FI Swedish - Finland 0x081D SVF
sv-SE Swedish - Sweden 0x041D SVE
syr-SY Syriac - Syria 0x045A
ta-IN Tamil - India 0x0449
tt-RU Tatar - Russia 0x0444
te-IN Telugu - India 0x044A
th-TH Thai - Thailand 0x041E THA
tr-TR Turkish - Turkey 0x041F TRK
uk-UA Ukrainian - Ukraine 0x0422 UKR
ur-PK Urdu - Pakistan 0x0420 URD
Cy-uz-UZ Uzbek (Cyrillic) - Uzbekistan 0x0843
Lt-uz-UZ Uzbek (Latin) - Uzbekistan 0x0443
vi-VN Vietnamese - Vietnam 0x042A VIT
Änderungen
6fa64-am90571-am