ABAP 选择屏幕字段动态隐藏和显示

选择屏幕字段动态隐藏和显示

TABLES : vbak,vbap,vbpa.

SELECTION-SCREEN BEGIN OF BLOCK b1  WITH FRAME TITLE text-001 .
SELECT-OPTIONS: s_vkorg FOR vbak-vkorg MODIF ID md1 DEFAULT'2100' OBLIGATORY,
                s_vstel FOR vbap-vstel MODIF ID md1,
                s_kunnr FOR vbak-kunnr MODIF ID md1,
                s_vdatu FOR vbak-vdatu MODIF ID md1,
                s_kunnrw FOR vbpa-kunnr MODIF ID md3,
                s_land1 FOR vbpa-land1 MODIF ID md3,
                s_vbeln FOR vbak-vbeln MODIF ID md1,
                s_posnr FOR vbap-posnr MODIF ID md1,
                s_matnr FOR vbap-matnr MODIF ID md1,
                s_uname FOR sy-uname MODIF ID md2 DEFAULT sy-uname,
                s_udate FOR sy-datum MODIF ID md2,
                s_uzeit FOR sy-uzeit MODIF ID md2.
PARAMETERS: p_check TYPE char01 MODIF ID md3 AS CHECKBOX USER-COMMAND u1.
PARAMETERS: p_file LIKE rlgrap-filename MODIF ID md3 .
PARAMETERS: p_log  TYPE char01 AS CHECKBOX USER-COMMAND u2 MODIF ID md1.
SELECTION-SCREEN END OF BLOCK b1 .

 

AT SELECTION-SCREEN OUTPUT.

***当P_LOG为‘x’时,MD1和MD2显示,其他的隐藏,当P_LOG不为’X’时,MD2隐藏,其他的显示
  IF p_log = 'X'.
    LOOP AT SCREEN. 
      IF screen-group1 = 'MD1' OR screen-group1 =  'MD2'.
        screen-active = '1'. “显示
      ELSE.
        screen-active = '0'.”隐藏
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.
  ELSE.
    LOOP AT SCREEN.
      IF screen-group1 = 'MD2'.
        screen-active = '0'. ”隐藏
      ELSE.
        screen-active = '1'. “显示
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.
  ENDIF.

posted @ 2021-03-16 16:58  闫默涵  阅读(1674)  评论(0编辑  收藏  举报