LIST BOX 联动的实现
2014-01-22 09:19
316 查看
有两种方式实现联动:
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值
BOX 联动的实现" TITLE="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值
BOX 联动的实现" TITLE="LIST BOX 联动的实现" />
一直没解决,哪位知道怎样解决,请留言,谢谢
相关文章推荐
- LIST BOX 联动的实现
- 实现三级联动下拉框 下拉列表…
- 用LinkedList类实现 模拟堆栈…
- 实现三级联动下拉框 下拉列表… 分类: Android开发 2014-05-30 10:57 67人阅读 评论(0) 收藏
- 使用 virtualbox 将物理硬盘当做虚…
- js 数组_模拟堆栈实现——前进、撤销…
- linux mmap驱动实现
- Linux启动参数及实现 __setup…
- Apache 二级域名实现
- 实现 iPhone 电子书的分页显…
- QT 打印的简单实现(转)
- swift 实现viewcontroller跳…
- VC++ 6.0实现自动化对象
- Android Bander设计与实现 - 设计…
- html基础 实现空格的效果
- 实现任意文件下载 FileDownload使用教程
- Java使用synchronized实现多线程操作list<1>
- VirtualBox 管理工具修改 UUID
- 如何使用C\C++实现文件的检索&nbsp;?
- 写一个MyList<T>的类,内部用T[]实现(不能使用系统的List<T>类),需要实现的接口如下: