在glt0,glpct这样的期间余额表中,每个期间的余额是通过字段名来存储的。很多报表都需要通过屏幕输入的期间来取该期间的余额,通过FIELD SYMBOL的动态调用可以使这样逻辑的代码变得简洁易读,例子如下:
FIELD-SYMBOLS: <FS_FIELD_01>,
<FS_FIELD_02>.
DATA: V_FIELDNAME_01(16) TYPE C,
V_FIELDNAME_02(16) TYPE C.
DATA: WA_GLT0_01 TYPE GLT0,
WA_GLT0_02 TYPE GLT0.
SELECT SINGLE * INTO WA_GLT0_01
FROM GLT0
WHERE RACCT = '1408810000' AND
RYEAR = P_GJAHR.
SELECT SINGLE * INTO WA_GLT0_02
FROM GLT0
WHERE RACCT = '1408820000' AND
RYEAR = P_GJAHR.
CONCATENATE 'WA_GLT0_01-HSL' P_MONAT INTO V_FIELDNAME_01.
CONCATENATE 'WA_GLT0_02-HSL' P_MONAT INTO V_FIELDNAME_02.
ASSIGN: (V_FIELDNAME_01) TO <FS_FIELD_01>,
(V_FIELDNAME_02) TO <FS_FIELD_02>.
IF <FS_FIELD_01> NE 0 OR <FS_FIELD_01> NE 0.
MESSAGE ID 'MM' TYPE 'W' NUMBER '899' WITH
'请将委外加工物资差异余额转到原材料差异科目中!'.
ENDIF.