Hallo,
ich habe ein Problem mit der Formatierung von Zahlen:
Auf unserem System (docker container mit einem Alpine-Image) werden Zahlen in den gedruckten Dokumenten an der Tausender-Stelle mit einem Komma getrennt. Die gleichen Templates produzieren auf einem Testsystem (Windows mit deutscher Local Einstellung) Punkte als Trennzeichen.
Was ist der vorgesehene Weg in unserem System die Verwendung von Punkten als Trennzeichen zu erzwingen? Ich habe bereits ausprobiert:
Nutzen der aktuellen stable builds 31.2.0-stable.303 und des Releases 31.1.0
Setzen der Local in Alpine mit LC_ALL und LANG
Setzen der CultureInfo auf “de-DE” für DefaultThreadCurrentCulture, für DefaultThreadCurrentUICulture Thread.CurrentThread.CurrentCulture mit
var culture = new CultureInfo(“de-DE”);
Thread.CurrentThread.CurrentCulture = culture;
[…]
ll = new:ListLabel
[…]
ll.Export()
damit Tausendertrennzeichen in dem von dir gewünschten Format erscheinen und auf verschiedenen Systemen einheitlich dargestellt werden, sind bei der Verwendung eines Alpine-Images noch einige kleinere Anpassungen erforderlich.
Zunächst müssen in Alpine die für die Locale-Unterstützung erforderlichen Pakete installiert werden:
musl-locales
icu-data-full
icu-libs
Zusätzlich muss nach der Installation die Umgebungsvariable DOTNET_SYSTEM_GLOBALIZATION_INVARIANT auf false gesetzt werden.
Um den Bericht anschließend an die gewünschte Locale anzupassen, sollte im Bericht dann LocNumber$(Dein.FeldName, "de-de") verwendet werden. Dadurch werden die Zahlenwerte im Bericht systemübergreifend einheitlich und im gewünschten Format dargestellt.
Damit sollten die Zahlenwerte nun korrekt dargestellt werden. Wir haben dir ein entsprechendes Dockerfile angehängt: