Hallo, ich habe ein kleines Problem und hoffe, dass ihr mir evtl weiterhelfen könnt.
Ich entwickle eine Methode, die vermutlich ziemlich oft aufgerufen wird und daher auch recht schnell sein sollte. In der zugehörigen Klasse gibt es eine Variable (gf_langu), welche die Sprache festlegt, in der beispielsweise ein Datum ausgegeben werden soll. Dieses Feld beinhaltet dann 'E' 'D' etc.
Meine Methode fragt dieses Feld ab und soll ein Datum in dem jeweiligen länderspezifischem Format ausgeben.
'E' --> 01/06/2010
'D' --> 06.01.2010
Bissel Code:
*so geht es nicht
set language gf_langu.
write sy-datum to ef_return.
*so würde es gehen bringt mir aber nix, da ich in gf_langu nur 'D' und nicht 'DE' zur Verfügung habe
set country 'DE'.
write sy-datum to ef_return.
Wisst Ihr, wie ich das hinbekommen kann, ohne große Abfragen zu machen um von der Sprache (D) auf das Land (DE) zu schliessen?
Servus André,
du kannst den Wert Country über einen Select auf die Ländertabelle T005 ermitteln. In der Datenbanktabelle findest du in der Spalte SPARS den Sy-Langu und in LAND1 den wert für die Country.
Zwecks Performance könntest du dir eine Tabelle als Memebervariable an die Klasse hängen und dort alle bereits selektierten Werte puffern - quasi zuerst aus der internen Tabelle lesen und erst dann einen Select auf die Datenbank machen wenn du den Wert noch nicht hast.
das dürfte nicht wirklich gut funktionieren, da gerade bei Englisch es in Großbritannien, den USA, Kanada und Australien/Neuseeland gesprochen wird, aber das 'normale' Datumsformat der USA (i.d.R. MM/TT/JJJJ) sich von dem Großbritanniens (i.d.R. TT/MM/JJJJ) unterscheidet. (siehe Wikipedia: Date and time notation by country)
Daher erscheint mir die Verwendung der Sprache zur Identifizierung des gewünschten Datumsformats nicht sinnvoll.
Gruß
Ereglam
May the Force be with your code || .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .