有两种方式实现联动:
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 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.
PERFORM zform_fill_ctry.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ctry.
PERFORM zform_fill_city.
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 .
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 .
PERFORM zform_fill_ctry .
PERFORM zform_fill_city .
但是出现了个问题,
就是在我变动国家后,城市框还显示上传选择的城市的key值
一直没解决,哪位知道怎样解决,请留言,谢谢