Funktion | Gibt den Attributwert im Benutzerformat zurück | ||||||||||||
Beispiel |
myuservalue = s10getuservalue( "kunnr" ). |
||||||||||||
Aufruf |
data: myattrname type string, myunitattrname type string, myuservalue type string. myuservalue = s10getuservalue( exporting   attrname = myattrname   unitattrname = myunitattrname ). |
||||||||||||
Parameter |
|
||||||||||||
Beschreibung |
Die Methode s10getuservalue() wird vom S10 Framework immer dann aufgerufen,
wenn der Wert eines Attributs dem Benutzer angezeigt wird. Die Methode kann
aber auch direkt aufgerufen werden, zum Beispiel um in einem Nachrichtentext
oder einem generierten Dokument Werte im Benutzerformat einzufügen.
Die Art der Aufbereitung ist wie bei ABAP "Write", d.h. es werden die Benutzereinstellungen bezüglich Dezimal- und Datumsdarstellung sowie ein eventueller Konvertierungsexit berücksichtigt. Der Konvertierungsexit kann für unterschiedliche Anmeldesprachen unterschiedliche Ausgaben erzeugen, zum Beispiel wird für Mengeneinheit "ST" bei Anmeldesprache Deutsch "ST" ausgegeben und bei Anmeldesprache Englisch "PC". Eine in der ABAP Klasse definierte "build"-Methode für das Attribut wird falls nötig vor der Ausgabe des Werts aufgerufen. Falls in der ABAP Klasse zu dem anzuzeigenden Attribut der Name des zugehörigen Einheits- oder Währungsattributs abgelegt ist, wird die Anzahl der Dezimalstellen bei der Ausgabe passend gewählt. Beispiel: Falls "vrkme" den Wert "ST" hat, also Stück, erfolgt die Ausgabe von "kwmeng" ohne Dezimalstellen. Sie können den Namen des Attributs, das die Einheit enthält, auch im Methodenaufruf selbst als Parameter mitgeben. Nicht immer ist das Attribut, das die Einheit enthält, in der gleichen Datenbanktabelle abgelegt wie das Mengenfeld. Beispielweise wird der Lagerbestand in Tabelle "MARD" im Feld "LABST" abgelegt, die zugehörige Lagermengeneinheit ist jedoch in Tabelle "MARA" im Feld "MEINS" (Basismengeneinheit) enthalten. Wenn Sie zur Datenbanktabelle "MARD" nun eine Klasse z.B. "db_mard" anlegen oder in den S10 Uitilities generieren, fehlt Ihnen dort die Mengeneinheit. Um auch für diesen Fall eine korrekte Ausgabe zu erhalten, können Sie wie folgt vorgehen: Sie nehmen in der Klasse "db_mard" das Einheitenfeld als weiteres Attribut auf und implementieren eine "build"-Methode, welche die Einheit aus Datenbanktabelle "MARA" liest. Das S10 Framework ruft automatisch immer dann, wenn sich die Materialnummer geändert hat, vor der Anzeige von "LABST" die build-Methode der zugehörigen Mengeneinheit auf und die Anzeige erfolgt korrekt gemäss der Basismengeneinheit des Materials:
* Class db_mard
constants: * declare method and dependency
* implement method |
||||||||||||
Komponente | S10 Framework |