Code: Alles auswählen.
REPORT ZWAER
LINE-SIZE 255 MESSAGE-ID z001.
TABLES: t001. "<<< das brauchen wir, sonst wird nicht aufbereitet
TABLES: bkpf. "<<< das brauchen wir, sonst wird nicht aufbereitet
* der Dynpro Processor braucht für die Aufbereitung den
* Schnittstellenbereich, der in TABLES definiert ist !
* Wenn nur "data t001 type t001." definert ist,
* funktioniert die Aufbereitung des Parameters pm_t001b nicht
* siehe auch interne Hilfe zu Tables (F1 bei Cursor auf TABLES)
* Da BSEG-txbhw nur 13-stellen hat, machen wir auch
* folgende Felder kleiner
parameters pm_dec1(7) type p decimals 1 default '5.1'.
parameters pm_dec2(7) type p decimals 2 default '12.23'.
parameters pm_dec3(7) type p decimals 3 default '12.345'.
parameters pm_t001w type t001-waers default 'JPY'.
* BSEG-txbhw ist auf t001-waers refernziert
parameters pm_t001b type BSEG-txbhw default '10'.
parameters pm_bkpfw type bkpf-waers default 'EUR'.
parameters pm_bkpfb type BSEG-TXBFW.
selection-screen skip.
parameters pmxt001b(7) type x.
parameters pmxbkpfb(7) type x.
parameters pmxdec01(7) type x.
parameters pmxdec02(7) type x.
parameters pmxdec03(7) type x.
* intern werden alle Betragsfelder ohne Kommastellen abgelegt,
* (siehe pmx.... Felder) erst bei einer Aktion wird die Definition
* des Feldes herangezogen !
* Sonderbearbeitung CURR Felder: die Verschiebung des Vorzeichens
* hängt vom REFERENZ Feld ab, sonst wird es wie ein P Typ mit 2
* Dezimalstellen behandelt.
* Das Referenzfeld wird !während! der Aufbereitung benötigt,
* d.H in unserem Fall brauchen wir das Feld T001-WAERS
* "AT SELECTION-SCREEN OUTPUT", wenn die Währung nicht definiert ist,
* wird die Standardaufbereitung p dec 2 herangezogen
* In unserem Fall muss für die Aufbereitung in die Workarea T001
* und BKPF die Währungen eingetragen werden -> dann klappt es auch
* mit den Betragsfeldern
field-symbols <fs_x> type x.
initialization.
AT SELECTION-SCREEN OUTPUT.
* Setze die Währungen vom Sel-Screen
t001-waers = pm_t001w.
bkpf-waers = pm_bkpfw.
* Addiere die Felder zum Betrag
pm_t001b = pm_dec1 + pm_dec2 + pm_dec3.
pm_bkpfb = pm_t001b.
* Aufbereitung in X-Felder für die Ausgabe
ASSIGN pm_t001b TO <fs_x> CASTING.
pmxt001b = <fs_x>.
ASSIGN pm_bkpfb TO <fs_x> CASTING.
pmxbkpfb = <fs_x>.
ASSIGN pm_dec1 TO <fs_x> CASTING.
pmxdec01 = <fs_x>.
ASSIGN pm_dec2 TO <fs_x> CASTING.
pmxdec02 = <fs_x>.
ASSIGN pm_dec3 TO <fs_x> CASTING.
pmxdec03 = <fs_x>.
LOOP AT SCREEN.
IF screen-name(6) = 'PM_DEC' or
screen-name = 'PM_T001W' or
screen-name = 'PM_BKPFW'.
screen-input = '1'.
else.
screen-input = '0'.
endif.
MODIFY SCREEN.
ENDLOOP.
*