ABAP学习(27):SUBMIT获取ALV LIST
ABAP SUBMIT获取返回LIST
使用Submit调用Reports程序,获取Reports程序返回的ALV Lists输出。
示例:
"submit,获取其他report list FORM f_test_submit_memory. DATA:lt_list TYPE TABLE OF abaplist. TYPES:BEGIN OF s_str, line TYPE C LENGTH 255, END OF s_str. DATA:lt_strlist TYPE TABLE OF s_str. DATA:ls_strlist LIKE LINE OF lt_strlist. FIELD-SYMBOLS:TYPE ANY TABLE. FIELD-SYMBOLS: type any . "LIKE LINE OF it_tab . DATA:lr_pay_data TYPE REF TO data. cl_salv_bs_runtime_info=>set( exporting display = abap_false metadata = abap_false data = abap_true ). "调用report程序,从memery获取report List SUBMIT xxxxxx EXPORTING LIST TO MEMORY AND RETURN. "方式1:从ABAP内存中加载缓存的LIST * CALL FUNCTION 'LIST_FROM_MEMORY' * TABLES * listobject = lt_list * EXCEPTIONS * not_found = 1 * OTHERS = 2. * "在当前屏幕中显示上面加载的LIST * IF sy-subrc = 0. * CALL FUNCTION 'WRITE_LIST' * TABLES * listobject = list_tab. * ENDIF. * CALL FUNCTION 'LIST_TO_ASCI' * TABLES * listasci = lt_strlist * listobject = lt_list * EXCEPTIONS * empty_list = 1 * list_index_invalid = 2 * others = 3. * LOOP AT lt_strlist INTO ls_strlist. * WRITE:/ ls_strlist-line. * ENDLOOP. "方式2:使用cl_salv_bs_runtime_info类 TRY . cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_pay_data ). ASSIGN lr_pay_data->* TO . CATCH cx_salv_bs_sc_runtime_info. MESSAGE `Unable to retrieve ALV data` TYPE 'E'. ENDTRY. cl_salv_bs_runtime_info=>clear_all( ). cl_demo_output=>display_data( ). ENDFORM.