HomeKB0482: Mahnung – Mehrsprachigkeit

KB0482: Mahnung – Mehrsprachigkeit

EINLEITUNG

In die TimeSafe Leistungserfassung ist ein einfaches Mahnwesen integriert. Bei der Verwendung von mehreren Sprachen ist einiges zu beachten. Der nachfolgende Artikel beschreibt die wichtigsten Punkte (gilt ab Version 4.3.0).

MAHNTEXTE

Auf dem Bericht-Layout der Berichtsdefinition 2009 Mahnung sind verschiedene Texte (Titel, Mahntexte) vordefiniert. Diese Texte werden abhängig davon, die wievielte Mahnung zu einer Rechnung erzeugt wird, angezeigt.

Oft ist es so, dass die Mahntexte von den Kunden angepasst werden. Damit die angepassten Texte verwendet werden und nicht dynamisch aus den Sprachressourcen geladen werden, ist in der Eigenschaft Tag der Controls mit den Mahntexten der Wert no-replace definiert.

MEHRSPRACHIGKEIT

Die Texte einer Mahnung werden in derselben Sprache angezeigt, in welcher die Rechnung gespeichert ist. Weil in den Controls mit den Mahntexten der Wert no-replace definiert ist, werden die sprachabhängigen Texte nicht aus den Ressourcen geladen und weiterhin in Deutsch angezeigt.

Um dies zu lösen kann in den Controls mit den Mahntexten in der Eigenschaft Tag der Wert no-replace entfernt werden. Dies führt aber dazu, dass sämtliche Texte aus den Ressourcen geladen werden. Folglich ist dies nur eine Lösung, wenn die vorgegeben Standardtexte nicht angepasst werden sollen.

Um eine Lösung für die Mehrsprachigkeit mit individuellen Mahntexten zu erhalten, müssen die Texte direkt im Script-Code der Berichte zugewiesen werden. Im Script-Code ist im Standardumfang sowohl eine Unterscheidung der Mahnstufe als auch eine Unterscheidung der verwendeten Sprache zu finden.

CODEAUSSCHNITT

switch(lRechnungsdaten.MahnungsNr.Value)
    {
        case 1:
            switch (mReport.Decorator.KulturAdapter.Sprache)
             {
                 case TLanguage.SprachenDB.DeutschProjekt:
                 case TLanguage.SprachenDB.DeutschMandat:
                    lTitel = „Zahlungserinnerung“;            
                    lBemerkungen = „Gemäss unserer Buchhaltung ist die vorliegende Rechnung trotz Ablauf der Zahlungsfrist noch offen.“ + Environment.NewLine + „Wahrscheinlich haben Sie dies übersehen. Wir bitten Sie diese Angelegenheit zu überprüfen.“ + Environment.NewLine + „Sollte sich dieses Schreiben mit Ihrer Zahlung gekreuzt haben, erachten Sie es bitte als gegenstandslos.“;
                     break;
                     
                 case TLanguage.SprachenDB.English:
                    lTitel = „Payment reminder“;
                    lBemerkungen = „According to our records, we have not yet received a remittance for above invoice.“ + Environment.NewLine + „We would appreciate if you cleared your account within the next days. If you have already sent your payment, please disregard this letter.“;
                     break;