1、 动态屏幕
如图要求:点击批量导入显示导入模板路径
点击手工维护隐藏导入模板路径
实现方法:
1、 )定义
两个屏幕区域blk 和 bk2
区域blk 里添加两个按钮 p_opt1 和 p_opt2
区域bk2 里定义p_file
注意:1.屏幕进来后所有屏幕字段的值,在没有给默认值的情况下都是为空的
所以刚进来时p_opt1 和 p_opt2都为空的
因此p_opt1 默认DEFAULT ‘X’
2. USER-COMMAND cmd 必须写,
用来控制两个按钮 p_opt1 和 p_opt2的事件触发,如果不写不会触发动态屏幕切换
用来判断p_file 什么时候隐藏。如果用screen-name = ‘P_FILE’来定位该字段的隐藏,会有问题:导入模板路径的描述不会隐藏
问题截图如下
2)、实现方法
2、 手动添加必输控制
要求:工厂必输和导入模板路径在批量导入时必输
两种实现方式:以工厂举例
1) 使用关键字必输 OBLIGATORY
在有动态屏幕选择控制的时候,切换按钮的时候都会报必输错误,其实是不需要报错。只能用第二种方法如下
2) 自定义必输控制
第一先给工厂字段勾上对号(实现切换按钮时不报错)
AT SELECTION-SCREEN OUTPUT. LOOP AT SCREEN. IF screen-name = ‘P_WERKS‘. screen-required = ‘2‘. ENDIF. MODIFY SCREEN. ENDLOOP.
第二在需要报错时要手动添加实现报错,并且点击执行按钮时报错
AT SELECTION-SCREEN ON p_werks. IF p_werks IS INITIAL AND sy-ucomm = ‘ONLI‘. MESSAGE e001(00) WITH ‘填写所有必填字段‘. ENDIF.
3、 选择屏幕自定义按钮
实现结果:
实现过程:如下 (定义+ function)
1、定义 :
TABLES:sscrfields.
2、Function key 代码如下:
SELECTION-SCREEN: FUNCTION KEY 1. "激活按钮 INITIALIZATION. sscrfields-ucomm = ‘FC01‘. sscrfields-functxt_01 = ‘下载模板’."‘下载模板
原文:https://www.cnblogs.com/lovelidan/p/14587308.html