0
点赞
收藏
分享

微信扫一扫

LIST BOX 联动的实现

有两种方式实现联动:

1、  USER-COMMAND 2、 AT  SELECTION-SCREEN  ON  VALUE-REQUEST  FOR listbox名称

例一: REPORT  zlm_listbox_02 .



*&---------------------------------------------------------------------*


*&宏定义,填充下拉框


*&---------------------------------------------------------------------*


DEFINE fill_list .

 

  value - key    = &1 .                          "个就是变量下拉框的值

 

  value - text   = &2 .                          "这个是text

 

  append  value  to &3 .


END-OF-DEFINITION .



*&---------------------------------------------------------------------*


*&LIST-BOX 变量定义


*&---------------------------------------------------------------------*


TYPE-POOLS : vrm  .                                                "存放combobox内容的type pool


DATA : name              TYPE vrm_id ,                                    " list box的名称

 

          list_ctry    TYPE vrm_values ,                                " list box的值

 

          list_city    TYPE vrm_values ,                                " list box的值

 

          value       LIKE  LINE  OF list_ctry  .                        " list box的结构


*&---------------------------------------------------------------------*


*&屏幕定义


*&---------------------------------------------------------------------*


PARAMETERS : p_ctry  TYPE char10  AS LISTBOX  VISIBLE  LENGTH  15  USER-COMMAND zctry .


PARAMETERS : p_city  TYPE char10  AS LISTBOX  VISIBLE  LENGTH  15  USER-COMMAND zcity .




*&---------------------------------------------------------------------*


*&初始化


*&---------------------------------------------------------------------*


INITIALIZATION .

 

  PERFORM zform_fill_ctry .



*&---------------------------------------------------------------------*


*&根据所选国家,显示城市


*&---------------------------------------------------------------------*


AT  SELECTION-SCREEN .

 

  CASE sy -ucomm .

 

      WHEN  'ZCTRY' .

 

          PERFORM zform_fill_city .

 

      WHEN  'ZCITY' .

 

          MESSAGE p_city  TYPE  'I' .

 

      WHEN  OTHERS .

 

  ENDCASE .




*&---------------------------------------------------------------------*


*&      Form  zform_fill_city


*&---------------------------------------------------------------------*


*       text


*----------------------------------------------------------------------*


FORM zform_fill_city .

 

  DATA : value  LIKE  LINE  OF list_ctry  .                        " list box的结构

 

  READ  TABLE list_ctry  INTO  value   WITH  KEY  key  = p_ctry .


 

  REFRESH  list_city .


 

  IF  value - key  =  'CH' .

 

      fill_list  'BJ'  '北京' list_city .

 

      fill_list  'TJ'  '天津' list_city .

 

  ENDIF .

 

  IF  value - key  =  'EN' .

 

      fill_list  'LD'  '伦敦' list_city .

 

  ENDIF .

 

  IF  value - key  =  'US' .

 

      fill_list  'LSJ'  '洛杉矶' list_city .

 

      fill_list  'HSD'  '华盛顿' list_city .

 

  ENDIF .

 

  "调用函数显示listbox里面的值

 

  CALL  FUNCTION  'VRM_SET_VALUES'

 

      EXPORTING

 

          id      =  'P_CITY'                                         " PARAMETERS's Name

 

          values  = list_city .


ENDFORM .                     "zform_fill_city



*&---------------------------------------------------------------------*


*&      Form  zform_fill_ctry


*&---------------------------------------------------------------------*


*       text  填充国家


*----------------------------------------------------------------------*


FORM zform_fill_ctry .


 

  REFRESH  list_ctry .


 

  fill_list  'CH'  '中国' list_ctry .

 

  fill_list  'EN'  '英国' list_ctry .

 

  fill_list  'US'  '美国' list_ctry .


 

  "调用函数显示listbox里面的值

 

  CALL  FUNCTION  'VRM_SET_VALUES'

 

      EXPORTING

 

          id      =  'P_CTRY'                                        " PARAMETERS's Name

 

          values  = list_ctry .


ENDFORM .                     "zform_fill_ctry


例二: 变动很小  INITIALIZATION.


   PERFORM zform_fill_ctry.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ctry.

  PERFORM zform_fill_city.


或者 AT  SELECTION-SCREEN  OUTPUT  .

 

  PERFORM zform_fill_ctry .



AT  SELECTION-SCREEN  ON  VALUE-REQUEST  FOR p_ctry .

 

  PERFORM zform_fill_city .

或者直接

AT  SELECTION-SCREEN  ON  VALUE-REQUEST  FOR p_ctry .

 

  PERFORM zform_fill_ctry .

 

  PERFORM zform_fill_city .



但是出现了个问题, 就是在我变动国家后,城市框还显示上传选择的城市的key值 ​LIST <wbr>BOX <wbr>联动的实现

一直没解决,哪位知道怎样解决,请留言,谢谢

举报

相关推荐

0 条评论