ABAP - 选择屏幕

ABAP - 选择屏幕 PARAMETRS常用方法*1. DEFAULT 默认值 PARAMETERS p_def TYPE char10 DEFAULT ABC. *2. OBLIGATORY 必填 PARAMETERS p_obl TYPE matnr OBLIGATORY. *3. LOWER CASE 允许小写 PARAMETERS p_low TYPE char10 LOWER CASE. *4. NO-DISPLAY 屏幕隐藏 PARAMETERS p_hide TYPE kunnr NO-DISPLAY DEFAULT 10000. *5. VISIBLE LENGTH n 输入框缩短 PARAMETERS p_len TYPE char20 VISIBLE LENGTH 5. *6. MODIF ID 屏幕分组(用来动态灰/隐藏) PARAMETERS p_mod TYPE bukrs MODIF ID m1. *7. AS CHECKBOX 复选框 PARAMETERS p_ck TYPE c AS CHECKBOX DEFAULT X. *8. AS RADIOBUTTON GROUP 单选组 PARAMETERS: r1 TYPE c RADIOBUTTON GROUP rad DEFAULT X, r2 TYPE c RADIOBUTTON GROUP rad, r3 TYPE c RADIOBUTTON GROUP rad. *9. MEMORY ID 全局记忆(同GET/SET PARAMETER) PARAMETERS p_mem TYPE matnr MEMORY ID mat. *10. VALUE CHECK 参照域做校验 PARAMETERS p_vc TYPE land1 VALUE CHECK. *11. HELP-REQUEST / VALUE-REQUEST 自定义F1/F4(配合事件) PARAMETERS p_f4 TYPE kunnr. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_f4. *自定义F4逻辑此处SELECT-OPTIONS常用方法DATA gs TYPE kna1. *NO INTERVALS只有LOW无HIGH区间 SELECT-OPTIONS s1 FOR gs-kunnr NO INTERVALS. *NO-EXTENSION去掉多选按钮 SELECT-OPTIONS s2 FOR gs-kunnr NO-EXTENSION. *OBLIGATORY必输、MODIF ID分组、DEFAULT默认区间 SELECT-OPTIONS s3 FOR gs-kunnr OBLIGATORY MODIF ID m2 DEFAULT 1000 TO 2000.常用案例TABLES:vbak,vbap. SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001. PARAMETERS : P1 RADIOBUTTON GROUP rad1 DEFAULT X USER-COMMAND uc, P2 RADIOBUTTON GROUP rad1 . SELECTION-SCREEN END OF BLOCK b1. SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002. SELECT-OPTIONS : s1_auart FOR vbak-auart MODIF ID ty1, 销售订单类型 s1_vbeln FOR vbak-vbeln MODIF ID ty1, 销售订单 s1_kunnr FOR vbak-kunnr MODIF ID ty1, 客户 s1_matnr FOR vbap-matnr MODIF ID ty1. 物料 SELECTION-SCREEN END OF BLOCK b2. SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE TEXT-003. SELECT-OPTIONS : s2_erdat FOR vbak-erdat MODIF ID ty2, 订单创建日期 s2_vdatu FOR vbak-vdatu MODIF ID ty2. 订单交货日期 SELECTION-SCREEN END OF BLOCK b3. AT SELECTION-SCREEN OUTPUT. LOOP AT SCREEN. CASE screen-group1. WHEN TY1. IF p1 X. screen-active 0. ELSE. screen-active 1. ENDIF. WHEN TY2. IF p2 X . screen-active 0. ELSE. screen-active 1. ENDIF. ENDCASE. MODIFY SCREEN. ENDLOOP.补充SCREEN 是 ABAP 内置的系统结构体用来在 LOOP 里控制屏幕字段的显示、隐藏、灰显、必输SCREEN 是系统结构体每个屏幕字段对应一条 SCREEN 记录。常用字段分四类识别、状态、显示、分组。1. 识别类NAME(30)屏幕字段名PARAMETERS/SELECT-OPTIONS 的名字例SCREEN-NAME P_VBELN2. 状态类最常用INPUT(1)1可输入/0灰显只读ACTIVE(1)1显示/0隐藏整个字段消失REQUIRED(1)1必输/0不必输/2假必输有*但不校验这三个是LOOP AT SCREEN 90% 的用法。三、常用3. 显示样式类OUTPUT(1)1仅显示不可输入INTENSIFIED(1)1高亮蓝/红INVISIBLE(1)1密码掩码显示*LENGTH(1)控制显示长度DISPLAY_3D(1)13D边框VALUE_HELP(1)1有F4帮助按钮4. 分组类批量控制神器GROUP1 ~ GROUP4(3)字段组配合MODIF ID批量控制选择屏幕PARAMETERS ... MODIF ID GR1.然后IF SCREEN-GROUP1 GR1.批量改属性工作里批量隐藏 / 灰显一批字段必用 GROUP1。