读书人

ABAP选择屏幕两个上拉列表的联动

发布时间: 2012-09-06 10:37:01 作者: rapoo

ABAP选择屏幕两个下拉列表的联动

REPORT ztest_call_prog.

TYPE-POOLS vrm. " ListBox使用
DATA: name TYPE vrm_id,
list TYPE vrm_values,
value LIKE LINE OF list.
TABLES: sscrfields.
DATA: g_code TYPE sscrfields-ucomm.

DATA:BEGIN OF itab OCCURS 0,
coun(2),
city(2),
tcity(10),
END OF itab.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE t1.
PARAMETERS: p_coun TYPE text20 OBLIGATORY AS LISTBOX VISIBLE LENGTH 15 USER-COMMAND coun,
p_city TYPE text20 AS LISTBOX VISIBLE LENGTH 15.
SELECTION-SCREEN END OF BLOCK b1.

INITIALIZATION.
t1 = '选择条件'.

CLEAR:list,list[],itab[].
value-key = '01'.
value-text = '中国'.
APPEND value TO list.
value-key = '02'.
value-text = '美国'.
APPEND value TO list.
p_coun = '01'.

CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'P_COUN'
values = list.

CLEAR:list,list[].

itab-coun = '01'.
itab-city = '01'.
itab-tcity = '北京'.
APPEND itab.
value-key = itab-city.
value-text = itab-tcity.
APPEND value TO list.

itab-coun = '01'.
itab-city = '02'.
itab-tcity = '上海'.
APPEND itab.
value-key = itab-city.
value-text = itab-tcity.
APPEND value TO list.

itab-coun = '01'.
itab-city = '03'.
itab-tcity = '广州'.
APPEND itab.
value-key = itab-city.
value-text = itab-tcity.
APPEND value TO list.

itab-coun = '02'.
itab-city = '04'.
itab-tcity = '纽约'.
APPEND itab.
value-key = itab-city.
value-text = itab-tcity.
APPEND value TO list.

itab-coun = '02'.
itab-city = '05'.
itab-tcity = '华盛顿'.
APPEND itab.
value-key = itab-city.
value-text = itab-tcity.
APPEND value TO list.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'P_CITY'
values = list.

AT SELECTION-SCREEN .
g_code = sscrfields-ucomm.
CASE g_code.
WHEN 'COUN'.
CLEAR:list,list[].
LOOP AT itab WHERE coun = p_coun.

value-key = itab-city.
value-text = itab-tcity.
APPEND value TO list.

IF sy-tabix EQ 1.
p_city = itab-city.
ENDIF.
ENDLOOP.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'P_CITY'
values = list.
ENDCASE.

读书人网 >编程

热点推荐