Klartext Kürzel für Sprache des Kunden oder des Vorgangs?

gutberle

Sehr aktives Mitglied
29. März 2011
1.271
339
Hallo,

gibt es im Formulardesigner irgendwo eine Konstante für die beim Kunden eingestellte Sprache? Bei Vorgang.Kunde finde ich hierzu gar nichts?

Bei Auftragspositionen gibt es die Konstante VorgangSpracheInterneNummer, die den numerischen Index der Sprache des aktuellen Vorgangs anzeigt. Ein einmal vergebener Sprachenindex scheint auch permanent erhalten zu bleiben, egal wie viele Sprachen man drumherum einfügt oder löscht.

Damit ist diese Konstante zwar schon nützlich, aber dass Schwedisch beim mir "4" ist, gilt eben nur für meine lokale JTL Installation, also suche ich eine Möglichkeit, die Sprache des aktuellen Vorgangs z.B. als ISO-3166 Kürzel, hier also z.B. als "SE" abzufragen. Die Möglichkeit zur Abfrage der Vorgangssprache unabhängig von der lokalen Reihenfolge der gewählten Sprachen wäre auch beim Tausch oder Vertrieb von Vorlagen sehr wichtig.

Vieleicht gibt es so etwas ja schon und ich bin mit Blindheit geschlagen, aber falls nicht, würde ich mich über eine "wohlwollende Prüfung" freuen.

Mfg,
Ingmar
 

SebastianB

Moderator
Mitarbeiter
6. November 2012
1.742
95
AW: Klartext Kürzel für Sprache des Kunden oder des Vorgangs?

Hi,

Vorgang.SpracheInterneNummer ist ein interner Schlüssel der die verwendete Sprache markiert. Wie schon erkannt hängt der von der lokalen Wawi-Installation ab. Man kann über eine JTL_DirectQuery sich die Informationen aus tSprachen bzw. tSpracheUsed holen - dort ist dann der ISO-Code verfügbar.
Ich arbeite mich gerade durch die Variablen und werde demnächst dann eine überarbeitete Variante davon in die Wawi einpflegen - dort wird dann die Sprache über die Identifier und nicht mehr über die interne Nummer identifiziert.

Gruß,
Sebastian
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.271
339
Hallo @ChrisRo,

Nein, soweit ich das überblicken kann gibt es da auch in der 1.x keine Änderung. Was Du machen kannst, ist Dir die ISO-Bezeichnung der Sprache selbst aus der Datenbank auslesen und das funktioniert in der 0.9 genauso, wie in der 1.x, ist also "zukunftssicher" ... ;)
Code:
JTL_DirectQuery ("SELECT tSpracheUsed.cISO FROM tSpracheUsed JOIN tkunde ON tkunde.kSprache=tSpracheUsed.kSprache WHERE dbo.tkunde.ckundennr='"+ToString$(Vorgang.Kunde.Kundennummer)+"'")
Diesen Code kannst Du einfach überall dorthin kopieren, wo Du die Sprache brauchst, also zum Beispiel in Darstellungsbedingungen, denn der Code verhält sich für List & Label wie ein Text-String.

Oben schreibt @SebastianB übrigens, man könne sich die Infos auch aus tSprachen holen. Das funktioniert aber deshalb nicht, weil die interne Nummer, die zu der Sprache gehört, die beim Kunden selbst angegeben ist, dem Wert von kSprache in der Tabelle tSpracheUsed entspricht und nicht dem Wert kSprache in tSprachen. Kurz gesagt, es gibt zwar viele Wege nach Rom, hier aber nur einen, der praktikabel ist.

Und hier noch der Vollständigkeit halber die Tabelle der benutzten Sprachen bei mir (auch noch Wawi 0.9xxx). Die zeige ich Dir nur, falls Du nicht mit dem ISO-Wert, also "ger" oder "eng", etc. arbeiten willst, sondern mit "human readable" Werten.

kSprache, cNameEng, cNameDeu, cISO
1, German, Deutsch, ger
2, English, Englisch, eng
6, French, Französisch, fre

Dann würdest Du das tSpracheUsed.cISO in der Formel oben für deutsche Sprachnamen einfach durch tSpracheUsed.cNameDeu oder für Englisch halt durch tSpracheUsed.nNameEng ersetzen.

Gruß,
Ingmar
 
Zuletzt bearbeitet: