首页 > 其他 > 详细

ABAP屏幕下拉框连动选择

时间:2019-12-31 18:07:38      阅读:92      评论:0      收藏:0      [点我收藏+]

参考程序:ZSCRN001

 

TYPE-POOLS:vrm.

DATA: name TYPE vrm_id.

DATA:num TYPE i. "内表判断字段长度的变量

 

TYPES: BEGIN OF wa ,

   key(40),

   text(80) TYPE c,

 END OF wa.

 DATA:gt LIKE t179t OCCURS 0 WITH HEADER LINE.

 DATA:wa1 TYPE TABLE OF wa WITH HEADER LINE. "111

 DATA:wa2 TYPE TABLE OF wa WITH HEADER LINE ."111222

 DATA:wa3 TYPE TABLE OF wa WITH HEADER LINE. "111222333

 

DATA:itab LIKE t179t OCCURS 0 WITH HEADER LINE.

DATA: ps_t(15) TYPE c.

SELECTION-SCREEN BEGIN OF BLOCK t1 WITH FRAME TITLE title1.

 

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(31) text-003.

PARAMETERS: pl1 LIKE ps_t AS LISTBOX VISIBLE LENGTH 15 USER-COMMAND p1 ."一级类

 

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN SKIP 1.

 

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(31) text-004.

PARAMETERS: pl2 LIKE ps_t AS LISTBOX VISIBLE LENGTH 15 USER-COMMAND p2."二级类

 

SELECTION-SCREEN END OF LINE.

 

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(31) text-005.

PARAMETERS: pl3 LIKE ps_t AS LISTBOX VISIBLE LENGTH 15."三级类

SELECTION-SCREEN END OF LINE.

 

 

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN PUSHBUTTON 1(11) btntxt USER-COMMAND btn1.

SELECTION-SCREEN COMMENT 12(20) text-006.

PARAMETERS:z_sn2 TYPE matnr.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK t1.

INITIALIZATION.

  btntxt = ‘从开始到现在‘.

 

AT SELECTION-SCREEN OUTPUT.

  name = ‘PL1‘.

   SELECT *  FROM t179t INTO TABLE gt  WHERE spras = 1   .

   LOOP AT gt.

   num = STRLEN( gt-prodh ).

   IF num = 5.

     wa1-text  = gt-vtext.

     wa1-key   = gt-prodh.

     APPEND: wa1.

   ENDIF.

   CLEAR: gt,num,wa1.

   ENDLOOP.

 

 CALL FUNCTION ‘VRM_SET_VALUES‘

    EXPORTING

      id     = name

      values = wa1[].

 

 

AT SELECTION-SCREEN.

 

  CASE sy-ucomm.

    WHEN ‘P1‘.

   CLEAR: pl2,pl3.        "清空2、3级下拉空默认值,当用户在选择屏幕上重新选择时需要清除

   CLEAR:wa2,wa2[].       "清空2级下拉内表对应的值,当用户在选择屏幕上重新选择时需要清除

   CLEAR num.

   LOOP AT gt .

     num = STRLEN( gt-prodh ).

     IF num = 10 AND gt-prodh+0(5) = pl1.

 

       wa2-text  = gt-vtext.

       wa2-key   = gt-prodh.

       APPEND: wa2.

 

     ENDIF.

     CLEAR:gt,num,wa2.

   ENDLOOP.

 

   CALL FUNCTION ‘VRM_SET_VALUES‘

    EXPORTING

      id     = ‘PL2‘

      values = wa2[].

   CLEAR pl2.

   WHEN ‘P2‘.

      CLEAR pl3.               "清空3级下拉空默认值,当用户在选择屏幕上重新选择时需要清除

      CLEAR:wa3,wa3[].         "清空3级下拉内表对应的值,当用户在选择屏幕上重新选择时需要清除

      CLEAR num.

      LOOP AT gt .

       num = STRLEN( gt-prodh ).

       IF num = 18 AND gt-prodh+0(10) = pl2.

 

         wa3-text  = gt-vtext.

         wa3-key   = gt-prodh.

         APPEND: wa3.

 

       ENDIF.

       CLEAR:gt,num,wa3.

     ENDLOOP.

 

   CALL FUNCTION ‘VRM_SET_VALUES‘

    EXPORTING

      id     = ‘PL3‘

      values = wa3[].

  CLEAR pl3.

  ENDCASE.

ABAP屏幕下拉框连动选择

原文:https://www.cnblogs.com/jimi520/p/12125573.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!