LIST BOX 联动的实现
有两种方式实现联动:
INITIALIZATION.
PERFORM zform_fill_ctry.
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
*&---------------------------------------------------------------------*
*&宏定义,填充下拉框
*&---------------------------------------------------------------------*
DEFINE
END-OF-DEFINITION.
*&---------------------------------------------------------------------*
*&LIST-BOX
*&---------------------------------------------------------------------*
TYPE-POOLS:
DATA:
*&---------------------------------------------------------------------*
*&屏幕定义
*&---------------------------------------------------------------------*
PARAMETERS:
PARAMETERS:
*&---------------------------------------------------------------------*
*&初始化
*&---------------------------------------------------------------------*
INITIALIZATION.
*&---------------------------------------------------------------------*
*&根据所选国家,显示城市
*&---------------------------------------------------------------------*
AT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM
ENDFORM.
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM
ENDFORM.
例二:
变动很小
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
或者直接
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ctry.
PERFORM zform_fill_ctry.
PERFORM zform_fill_city.
但是出现了个问题,
就是在我变动国家后,城市框还显示上传选择的城市的key值
一直没解决,哪位知道怎样解决,请留言,谢谢
http://blog.sina.com.cn/sapliumeng