*&---------------------------------------------------------------------**& Report ZEROTEST69*& 测试直接取MB5B 历史库存的数据*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*REPORT zerotest69.TABLES: t001w,mard,mkpf.DATA:ls_data TYPE REF TO data.FIELD-SYMBOLS: <lt_data> TYPE table, <l_data> TYPE data.DATA BEGIN OF itab_list OCCURS 0. INCLUDE STRUCTURE abaplist.DATA END OF itab_list.DATA:BEGIN OF t_str OCCURS 0, str(20) TYPE c,END OF t_str.DATA: BEGIN OF vlist OCCURS 0, "这个调用程序ALV输出的长度要根据实际长度来确认 filler1(100) TYPE c, field1(50) TYPE c, filler(50) TYPE c, field2(50) TYPE c, filler3(50) TYPE c, END OF vlist.DATA: str1(100) TYPE c, str2(100) TYPE c.SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-bl1.SELECT-OPTIONS: s_werks FOR t001w-werks, s_matnr FOR mard-matnr, s_budat FOR mkpf-budat.SELECTION-SCREEN END OF BLOCK bl1.START-OF-SELECTION. PERFORM get_mb5b_data.*&---------------------------------------------------------------------**& Form get_mb5b_data*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*FORM get_mb5b_data. cl_salv_bs_runtime_info=>set( display = abap_false metadata = abap_false data = abap_true ). SUBMIT rm07mlbd WITH werks IN s_werks WITH matnr IN s_matnr WITH datum IN s_budat WITH lgbst = 'X' AND RETURN EXPORTING LIST TO MEMORY."TCODE:MB5B CALL FUNCTION 'LIST_FROM_MEMORY' TABLES listobject = itab_list EXCEPTIONS not_found = 4 OTHERS = 8. CALL FUNCTION 'LIST_TO_ASCI' EXPORTING list_index = -1 TABLES listasci = vlist listobject = itab_list EXCEPTIONS empty_list = 1 list_index_invalid = 2 OTHERS = 3. IF sy-subrc = 0. READ TABLE vlist INDEX 5. IF sy-subrc = 0 . SPLIT vlist-filler1 AT '' INTO TABLE t_str . "根据空格拆分 ENDIF. ENDIF. DELETE t_str WHERE str = ''. "删除空行 READ TABLE t_str INDEX 3. IF sy-subrc = 0. WRITE: t_str-str. ENDIF.* TRY.* cl_salv_bs_runtime_info=>get_data_ref(* IMPORTING r_data = ls_data ).** ASSIGN ls_data->* TO <lt_data>.** CATCH cx_salv_bs_sc_runtime_info.* MESSAGE '无法读取ALV数据' TYPE 'E'.* ENDTRY.** cl_salv_bs_runtime_info=>clear_all( ).** IF <lt_data> IS ASSIGNED.* LOOP AT <lt_data> ASSIGNING <l_data>.** MOVE-CORRESPONDING <l_data> TO gt_tab.** APPEND gt_tab.* ENDLOOP.* ENDIF.ENDFORM. "
例子二:
FIELD-SYMBOLS <FT_ZSDR011> TYPE ANY TABLE. CL_SALV_BS_RUNTIME_INFO=>SET( EXPORTING DISPLAY = ABAP_FALSE METADATA = ABAP_FALSE DATA = ABAP_TRUE ). SUBMIT ZSDR001 WITH S_MVLEN = I_VBELN AND RETURN. TRY. CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF( IMPORTING R_DATA = DATA(LT_ZSDR011) ). ASSIGN LT_ZSDR011->* TO <FT_ZSDR011>. CATCH CX_SALV_BS_SC_RUNTIME_INFO. ENDTRY. CL_SALV_BS_RUNTIME_INFO=>CLEAR_ALL( ). IF <FT_ZSDR011> IS NOT INITIAL. LOOP AT <FT_ZSDR011> ASSIGNING FIELD-SYMBOL(<FS_ZSDR011>). * 应收余额 ASSIGN COMPONENT 'DMBTR_YSKYE' OF STRUCTURE <FS_ZSDR011> TO FIELD-SYMBOL(<F_DMBTR_YSKYE>). ES_DATA-ZZVBLEN_SYED = ES_DATA-ZZVBLEN_SYED + <F_DMBTR_YSKYE>. ENDLOOP. ENDIF.
网友评论