[RTC] Sprachlayer bei Mahnungserstellungen

25. September 2012 09:49

Hallo,

ein Kunde möchte gerne, dass beim Ertstellen von Mahnungen bei englischsprachigen Debitoren die Zusatztexte auch in Englisch sind. (z.B. Textkonstante Text0000 in der Codeunit Reminder-Make).

Ich habe schon versucht die GLobalelanguage bzw. im Startbericht den Wert für CurrReport.Language auf Englisch zu setzen. Leider funktioniert das alles nicht.

Hat jemand ne Idee, wie ich es lösen kann?

lg
Rom

Re: [RTC] Sprachlayer bei Mahnungserstellungen

25. September 2012 10:06

GLOBALLANGUAGE muss in der Codeunit (zur Erstellung des Vorschlags selbst) aufgerufen werden, und zwar befor die Textkonstante angewendet wird. Hast du es auch dort versucht?
Danach muss GLOBALLANGUAGE auf den Ursprungswert zurück gesetzt werden (also diesen vorher merken).

Im Report kann es nicht funktionieren, weil dieser nur die Tabellendaten (wie Zeilentexte) ausgibt. Darum müssen schon die Zeilentexte auf Englisch geschrieben werden.

Re: [RTC] Sprachlayer bei Mahnungserstellungen

25. September 2012 10:18

Natalie hat geschrieben:GLOBALLANGUAGE muss in der Codeunit (zur Erstellung des Vorschlags selbst) aufgerufen werden, und zwar befor die Textkonstante angewendet wird. Hast du es auch dort versucht?
Danach muss GLOBALLANGUAGE auf den Ursprungswert zurück gesetzt werden (also diesen vorher merken).

Im Report kann es nicht funktionieren, weil dieser nur die Tabellendaten (wie Zeilentexte) ausgibt. Darum müssen schon die Zeilentexte auf Englisch geschrieben werden.



Danke für die Antwort.

Ich hab es schon überall eingebaut und ausprobiert... außer ich habe irgendwo ein Denkfehler... zur Sicherheit mal mein Code:

Code:
GlogalLanguageID := GLOBALLANGUAGE;
WITH Cust DO BEGIN

  IF (Cust."Language Code" <> 'DEA') OR (Cust."Language Code" <> 'DEU') THEN
    GLOBALLANGUAGE(Language.GetLanguageID('ENU'))
  ELSE
    GLOBALLANGUAGE(GlogalLanguageID);
..
..
...

Re: [RTC] Sprachlayer bei Mahnungserstellungen

25. September 2012 11:55

Zum einen würde ich es einfacher halten:

Code:
GlobalLanguageID := GLOBALLANGUAGE;

CustLanguageID := Language.GetLanguageID(Cust."Language Code");
IF CustLanguageID <> GLOBALLANGUAGE THEN BEGIN
  GLOBALLANGUAGE(CustLanguageID);
END;

Da das Umstellen von GLOBALLANGUAGE immer etwas Client-Zeit kostet, nur dann durchführen, wenn wirklich notwendig (also gleiche Prüfung auch am Ende, wenn auf GlobalLanguageID zurückgestellt werden soll).

Zum anderen sehe ich nicht, wo du diesen Code eingebettet hast. Ist Cust zu diesem Zeitpunkt überhaupt schon gefüllt (Customer.GET(...))?
Ist eure Tabelle Language auch immer mit der Windows Language ID bestückt?

Re: [RTC] Sprachlayer bei Mahnungserstellungen

25. September 2012 12:53

Natalie hat geschrieben:Zum anderen sehe ich nicht, wo du diesen Code eingebettet hast. Ist Cust zu diesem Zeitpunkt überhaupt schon gefüllt (Customer.GET(...))?

Ja, die Cust Variable wird über ein Set initalisiert. Im CC funktioniert es auch, nur halt im RTC nicht.


Natalie hat geschrieben:Ist eure Tabelle Language auch immer mit der Windows Language ID bestückt?

Jepp, alles richtig befüllt..

Re: [RTC] Sprachlayer bei Mahnungserstellungen

25. September 2012 13:09

rom hat geschrieben:Im CC funktioniert es auch, nur halt im RTC nicht.


Die Info war mir neu.
Wie soll ich mir das Ergebnis vorstellen?
Wenn du - für denselten Debitor - die Mahnungsvorschlag im CC laufen lässt, sind englischsprachige Textzeilen vorhanden?
Wenn du dies im RTC wiederholst, sind die Texte deutsch?

Re: [RTC] Sprachlayer bei Mahnungserstellungen

25. September 2012 13:16

Natalie hat geschrieben:
rom hat geschrieben:Im CC funktioniert es auch, nur halt im RTC nicht.


Die Info war mir neu.
Wie soll ich mir das Ergebnis vorstellen?
Wenn du - für denselten Debitor - die Mahnungsvorschlag im CC laufen lässt, sind englischsprachige Textzeilen vorhanden?
Wenn du dies im RTC wiederholst, sind die Texte deutsch?


genau...mit dem Programmcode oben!

Re: [RTC] Sprachlayer bei Mahnungserstellungen

25. September 2012 13:27

Hast du mittels einer MESSAGE überprüft, ob der Code im RTC überhaupt durchlaufen wird?
Falls nein, dann suche nach dem schuldigen ISSERVICETIER und was stattdessen aufgerufen wird.