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.