[gelöst] Sprache in Reports nach Plattform-Update verdreht

17. September 2015 15:11

Hallo Ihr,

ich habe ein Plattform-Update auf den letzten verfügbaren Build von Nav 2009 R2 durchgeführt. Seitdem verhalten sich die Reports anders.
Beispiel Verkaufsrechnung:

In einer Tabelle im Body wird die "Hidden"-Eigenschaft über einen Ausdruck gesteuert:
Code:
=Iif(Fields!Sales_Line__Type.Value = "G/L Account" Or Fields!Sales_Line__Type.Value = "Item", true, false)


Seit dem Update kommt in der Anzeige Unsinn raus, weil die abgefragten Felder im Dataset die deutschen Bezeichnungen enthalten. Kann man (unabhängig von der Sprache in der der Report gedruckt wird) irgendwie steuern welche Sprache hier genommen wird? Das wäre sehr praktisch, denn sonst müsste ich sämtliche Bedingungen in allen Reports überprüfen.
Zuletzt geändert von UGo am 21. September 2015 10:34, insgesamt 1-mal geändert.

Re: Sprache in Reports nach Plattform-Update verdreht

17. September 2015 15:50

UGo hat geschrieben:Kann man (unabhängig von der Sprache in der der Report gedruckt wird) irgendwie steuern welche Sprache hier genommen wird? Das wäre sehr praktisch, denn sonst müsste ich sämtliche Bedingungen in allen Reports überprüfen.
Optionswerte lassen sich sog. XML-Format übergeben, also in der CC-Section so:
Code:
FORMAT("DeinOptionsfeld",0,9)
(siehe Format Property). Heraus kommt dabei ein nummerischer Wert (als Text, z.B. "1"!), den du im Hiddenausdruck abfragen kannst.
Eine immer englische Ausgabe als Optionswert (z.B. "Item") ist leider nicht möglich - es sei denn, das wurde in deiner Version korrigiert. Probier mal folgendes aus:
Code:
SalesLine.Type := SalesLine.Type::Item;
MESSAGE(FORMAT(SalesLine.Type,0,0));
MESSAGE(FORMAT(SalesLine.Type,0,1));

Re: Sprache in Reports nach Plattform-Update verdreht

18. September 2015 10:52

Hallo Natalie,

vielen Dank für Deine schnelle Antwort. Wenn es keine Möglichkeit gibt, die in den Optionsfeldern übergebene Sprache zu steuern, dann muss ich mir tatsächlich jeden einzelnen Report anschauen und korrigieren. :cry:
Kann es eventuell sein, daß die Sprache des Rechners mit dem die Objekte compiliert wurden eine Rolle spielt? Nach dem Plattform-Update mussten wir ja alle Objekte neu compilieren...
Oder gibt es vielleicht am Server irgendwo eine Einstellung die die interne Sprache von Nav steuert?

Viele Grüße,
UGo

Re: Sprache in Reports nach Plattform-Update verdreht

18. September 2015 14:29

Du kommst meines Wissens nach um ein Korrigieren der Reports nicht herum.
Hast du denn schon den o.g. Quelltext ausprobiert? Meine Hoffnung wäre, dass es einen Unterschied zwischen Parameter 0 und 1 gibt (den es in meinem Build nämlich nicht gibt; da hängt die verwendete Sprache einzig von der NAV Clientsprache ab).

Re: Sprache in Reports nach Plattform-Update verdreht

18. September 2015 15:34

Hallo,

mir hat folgende kleine Funktion da sehr geholfen
Code:
GetOptionValue(pRecRef : RecordRef;pFieldNo : Integer;pFieldVal : Integer) : Text
BEGIN
  lFieldRef := pRecRef.FIELD(pFieldNo);
  EXIT(SELECTSTR(pFieldVal+1,lFieldRef.OPTIONSTRING));
END;

Wahlweise ist OPTIONSTRING (immer richtig, da unabhängig von der Sprache des ausgegebenen Belegs) oder OPTIONCAPTION verwenden (letzteres, wenn es auf dem Beleg stehen soll).

Problematisch wird es nur, wenn du deine Abfragen jetzt auf die deutschen Optionswerte gemacht hast. Das fällt dir dann auf die Füße, wenn du einen Beleg in Englisch drucken möchtest. :wink:

Gruß, Fiddi

Re: Sprache in Reports nach Plattform-Update verdreht

21. September 2015 10:34

Hallo Ihr,

habe Natalies Code ausprobiert und bekomme bei beiden Messages den deutschen Text zu sehen. Jetzt werde ich die wichtigsten Belege durchschauen ob es da irgendwelche problematischen Ausdrücke gibt.

Vielen Dank für die Hilfe!
UGo

Re: [gelöst] Sprache in Reports nach Plattform-Update verdre

21. September 2015 11:07

habe Natalies Code ausprobiert und bekomme bei beiden Messages den deutschen Text zu sehen


Falls du mein Beispiel meinst :-D , dann passiert das dann, wenn die Optionswerte (OptionString) der Option auf Deutsch hinterlegt sind. Außerdem gibt es dann keinen Unterschied, wenn du keine OptionCapions hinterlegt hast.(letzteres funktioniert nur bei Tabellenfeldern)

Gruß Fiddi