Regionsspezifische Ausgabeformate

Diese Skript zeigt, wie man abhängig von einem Feldinhalt zum Beispiel auf eine Schweizer Ausgabe (Dezimal Punkt und Tausender Hochkomma) umstellen kann.

Konfiguration

  • Es handelt sich um einen Exporter der ein Dokument generiert (Word, Excel, Text).

  • Es werden zwei Skripte genutzt:

    • Ein Skript wird als AfterLoadData genutzt um die Sprache umzustellen.

    • Ein Skript wird als AfterClosingDocument genutzt um die Sprache wieder zu resetten.

Ideen

  • In einem Feld für die Dokumentausgabe ist zum Beispiel definiert, dass für eine schweizer Tochtergesellschaft ein Dokument generiert werden soll auf einem deutschen System.

  • Es wird für die Dauer der Ausgabe die Thread-Culture umgestellt und danach wieder zurückgesetzt.

Skript 1

// Version 5
namespace Ruthardt.PrintPlus.Skripting
{
	using System;
	using Ruthardt.CobraBase.Functions.Access.Ado;
	using Ruthardt.CobraFramework.Ado;
	using Ruthardt.PrintPlus.Model.Interfaces;
	using System.Globalization;
	using System.Threading;

	public class SpracheSetzen : IScriptAction
	{
		public void Execute(IPrintContext printContext, ICurrentContext currentContext, IChildContext childContext)
		{
			if (currentContext.Data.GetStringValue("Mandant").Equals("enorm", StringComparison.InvariantCultureIgnoreCase))
			{
				Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("de-CH");
				Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("de-CH");
			}
		}
	}
}

Skript 2

// Version 5
namespace Ruthardt.PrintPlus.Skripting
{
	using System;
	using Ruthardt.CobraBase.Functions.Access.Ado;
	using Ruthardt.CobraFramework.Ado;
	using Ruthardt.PrintPlus.Model.Interfaces;
	using System.Globalization;
	using System.Threading;

	public class SpracheReset : IScriptAction
	{
		public void Execute(IPrintContext printContext, ICurrentContext currentContext, IChildContext childContext)
		{
			if (currentContext.Data.GetStringValue("Mandant").Equals("enorm", StringComparison.InvariantCultureIgnoreCase))
			{
				Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("de-DE");
				Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("de-DE");
			}
		}
	}
}

Last updated