有些report要求可以运行多个人,也可以运行单个人。
但是LDB逻辑数据库默认自带的选择屏幕是固定的,我们如何才能根据用户的选择,来修改选择屏幕实现不同的显示呢?
我们想要的结果,如下图所示
(1)默认情况下是多人模式,选择屏幕为:
(2)当用户选择单人模式后,选择屏幕变为
这种效果是如何实现的,可参照下面的代码:
第一:创建一个report,它所使用的LDB 是PNPCE
第二:代码实现
*&---------------------------------------------------------------------*
*& Report ZTEST04
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztest04.
tables: pernr.
nodes: peras.
PARAMETERS: p_sin TYPE pae_smmod RADIOBUTTON GROUPhpUSER-COMMANDcheck.
PARAMETERS: p_mul TYPE pae_smmod RADIOBUTTON GROUPhpDEFAULT'X'.
AT SELECTION-SCREEN OUTPUT.
PERFORM init_pernr.
FORM init_pernr .
LOOP AT SCREEN. "loop screen to find the field name
IF p_sin = abap_true.
IF screen-name='%_PNPPERNR_%_APP_%-VALU_PUSH'.
screen-active = '0'.
MODIFY SCREEN.
ENDIF.
ENDIF.
IF p_mul = abap_true.
IF screen-name='PNPPERNR-LOW'.
screen-required = '0'.
MODIFY SCREEN.
ENDIF.
IF screen-name='%_PNPPERNR_%_APP_%-VALU_PUSH'.
screen-active