[Gelöst] Mehrsprachige Labels

3. Januar 2018 15:29

Hi,

mit NAV 2017 wird ja nun vorgegaukelt das man mit mehrsprachigen Labels im Report arbeiten könne.
Aber wie.
Ich habe Lables in 2 Sprachen DEU und ENU angelegt.
Diese Erscheinen dann ja als Parameter im den Reportdatas.
Wenn ich die Variable nun in den Report ziehen erscheint der Wert immer in Deutsch.
Die Language der Textbox habe ich schon auf mal hart auf ENU und en-US gesetzt, ohne Erfolg.
Geht das immer noch nicht korrekt, oder fehlt irgendwo noch etwas.
Ich arbeite mit VS 2015
Zuletzt geändert von FrausDo am 4. Januar 2018 08:51, insgesamt 1-mal geändert.

Re: Mehrsprachige Labels

3. Januar 2018 15:37

FrausDo hat geschrieben:Ich habe Lables in 2 Sprachen DEU und ENU angelegt.
Diese Erscheinen dann ja als Parameter im den Reportdatas.
So weit, so richtig.

Welche Sprache, also welcher Teil davon, aber nun zur Laufzeit (!) in das Layout geladen wird, hängt von der aktuellen NAV-Clientsprache ab, und die kannst du für die Laufzeit des Reports vorübergehend ändern.
Das macht der Standard z.B.in Report 205 so, und zwar nur im C/AL-Teil, nicht im RDLC:
Code:
Sales Header - OnAfterGetRecord()
CurrReport.LANGUAGE := Language.GetLanguageID("Language Code");

Re: Mehrsprachige Labels

3. Januar 2018 16:07

Diesen Code schnipsel habe ich in meiner Bestellung auch unter dem Bestellkopf
Aber irgendwo scheint er das wieder zu überschreiben im RDLC
Die Reporteigenschaft Language steht wohl per Default auf User!Language Wennich die rausnehme ändert sich auch nicht.
Auf ein DatasetItem kann man die leider nicht setzen.

Re: Mehrsprachige Labels

3. Januar 2018 16:38

Wir müssen nochmal von vorne anfangen. Bitte beantworte:

1. Soll die Sprache überhaupt eine andere sein als die, die du als NAV-User aktuell verwendest (z.B. die Sprache eines Debitoren)?
2. Falls die Sprache geändert werden soll: Sollen alle Seiten in einer Sprache ausgedruckt werden, oder soll sich die Sprache noch während des Ausdrucks je nach Datenlage (z.B. aktuellem Debitor) ändern?

Re: Mehrsprachige Labels

3. Januar 2018 16:57

Hi Natalie,

Die Sprache soll auf die Sprache des Kreditoren geändert werden,( wir kaufen einiges im englischsprachigen Raum)
Dann natürlich der gesamte Report.

Alles was aus den C/AL kommt ist auch in der richtigen Sprache.
Nur die Labels, obwohl in DEU als auch in ENU angelegt werden nur in DEU im RDLC angezeigt.

Die Kreditorensprache bekommt man so wohl nicht in den RDLC.

Hab mal Stichprobenweise im Standard nach gesehen. Der scheint wohl ohne Labels zu arbeiten.

Re: Mehrsprachige Labels

3. Januar 2018 17:08

FrausDo hat geschrieben:Hab mal Stichprobenweise im Standard nach gesehen. Der scheint wohl ohne Labels zu arbeiten.

Deswegen ja meine Nachfrage. Labels "funktionieren" nämlich nur einmal sozusagen, nämlich ganz am Anfang der Reportausführung.
Da die Standard-Belegreports aber mit dynamischen Sprachen arbeiten (du kannst mehrere Belege in einem Rutsch drucken, und jeden davon in einer anderen Sprache), kann der Standard das eben nicht mit Labels, sondern mit Textkonstanten lösen.

Zurück zu deinen Labels, die du laut deiner Beantwortung verwenden kannst:
Wenn du deinen Code zum Ändern der Sprache also zu spät setzt - und davon gehe ich jetzt aus, nämlich im OnAfterGetRecord - funktioniert das nicht.
Versuche den Code schon in OnPreReport-Trigger aufzurufen, allerspätestens im ersten OnPreDataItem-Trigger.

Re: Mehrsprachige Labels

4. Januar 2018 08:50

Hallo Natalie,

leider steht mir die Information welche Sprache ich gerade brauche erst zur Verfügung wenn ich den den Record gelesen habe, also im OnAfterGetRecord.
Das heißt ich muss wohl doch leider auf die Textkonstanten ausweichen :(

Re: Mehrsprachige Labels

4. Januar 2018 09:09

FrausDo hat geschrieben:leider steht mir die Information welche Sprache ich gerade brauche erst zur Verfügung wenn ich den den Record gelesen habe, also im OnAfterGetRecord.
Das heißt ich muss wohl doch leider auf die Textkonstanten ausweichen :(

Nein, du kannst z.B. auch im OnPreDataItem-Trigger ein IF FINDFIRST THEN; machen. Dann steht dir der erste Record schon vorher zur Verfügung.

Re: [Gelöst] Mehrsprachige Labels

4. Januar 2018 10:41

Hey,

probiers mal mit

Code:
CurrReport.LANGUAGE(Language."Windows Language ID");


Ich hab dies auch erst nachdem das erste DataItem geholt wurde.
Also es muss nicht ganz an Anfang.

Re: [Gelöst] Mehrsprachige Labels

4. Januar 2018 10:46

Hallo,
FrausDo hat geschrieben:
leider steht mir die Information welche Sprache ich gerade brauche erst zur Verfügung wenn ich den den Record gelesen habe, also im OnAfterGetRecord.
Das heißt ich muss wohl doch leider auf die Textkonstanten ausweichen :(
Nein, du kannst z.B. auch im OnPreDataItem-Trigger ein IF FINDFIRST THEN; machen. Dann steht dir der erste Record schon vorher zur Verfügung.


Man kann auch im OnAfterGetRecord die Sprache umschalten, man darf dann nur nicht mit Labels arbeiten, man muss dann Textkonstanten für fixe Texte verwenden.

Gruß Fiddi