*&---------------------------------------------------------------------* *& Report ZMMF007 *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT ZMMR009. *Code listing for: ZMMR009 *Description: 期初库存导入程序 **&---------------------------------------------------------------------* **& Report ZMMB_T001 **& **&---------------------------------------------------------------------* **& **& **&---------------------------------------------------------------------* *REPORT zmmf0007 LINE-SIZE 500. DATA: BEGIN OF t_kucun OCCURS 0, matnr TYPE mara-matnr, MAKTX TYPE makt-MAKTX, werks TYPE marc-werks, lgort TYPE mard-lgort, menge TYPE ltbp-menge, lifnr TYPE lfa1-lifnr, " 外协供应商 KUNNR TYPE KNA1-KUNNR, " 客户编号 amount_lc TYPE bapi2017_gm_item_create-amount_lc, batch TYPE bapi2017_gm_item_create-batch, hsdat TYPE bapi2017_gm_item_create-prod_date, lgtyp TYPE lqua-lgtyp, lgpla TYPE lqua-lgpla, lenum TYPE lqua-lenum, END OF t_kucun. DATA: t_gvitem TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE, t_serial TYPE TABLE OF bapi2017_gm_serialnumber WITH HEADER LINE, gt_return TYPE TABLE OF bapiret2 WITH HEADER LINE. DATA: BEGIN OF gt_serial OCCURS 0, matnr TYPE mara-matnr, werks TYPE marc-werks, lgort TYPE mard-lgort, menge TYPE ltbp-menge, amount_lc TYPE bapi2017_gm_item_create-amount_lc, batch TYPE bapi2017_gm_item_create-batch, hsdat TYPE bapi2017_gm_item_create-prod_date, lgtyp TYPE lqua-lgtyp, lgpla TYPE lqua-lgpla, lenum TYPE lqua-lenum, KUNNR TYPE kna1-KUNNR, lifnr TYPE lfa1-lifnr. " 外协供应商 DATA: END OF gt_serial. DATA: BEGIN OF tmp_gvitem OCCURS 0. INCLUDE STRUCTURE bapi2017_gm_item_create. DATA: flag TYPE c, maktx TYPE makt-MAKTX, matdoc_itm TYPE bapi2017_gm_serialnumber-matdoc_itm, lenum TYPE lein-lenum, END OF tmp_gvitem. DATA: BEGIN OF t_matdoc OCCURS 0, materialdocument TYPE bapi2017_gm_head_ret-mat_doc, tono TYPE ltap-tanum, to_flag TYPE c, END OF t_matdoc. TYPES: BEGIN OF ty_matdoc, materialdocument TYPE bapi2017_gm_head_ret-mat_doc, tono TYPE ltap-tanum, to_flag TYPE c, END OF ty_matdoc. DATA wa_matdoc TYPE ty_matdoc. FIELD-SYMBOLS: <fs_matdoc> TYPE ty_matdoc. DATA: BEGIN OF gt_error OCCURS 0, matnr TYPE mara-matnr, MAKTX TYPE makt-MAKTX, werks TYPE marc-werks, lgort TYPE mard-lgort, menge TYPE ltbp-menge, amount_lc TYPE bapi2017_gm_item_create-amount_lc, batch TYPE bapi2017_gm_item_create-batch, hsdat TYPE bapi2017_gm_item_create-prod_date, lgtyp TYPE lqua-lgtyp, lgpla TYPE lqua-lgpla, lenum TYPE lqua-lenum, KUNNR TYPE kna1-KUNNR, lifnr TYPE lfa1-lifnr, " 外协供应商 END OF gt_error. DATA: l_answer TYPE c, l_serial TYPE i, l_exit TYPE c. DATA:t_log LIKE bapiret2 OCCURS 0 WITH HEADER LINE. PARAMETERS: p_file TYPE rlgrap-filename OBLIGATORY, p_bwart LIKE mseg-bwart DEFAULT '561' OBLIGATORY, p_sobkz LIKE mseg-sobkz, p_date LIKE sy-datum DEFAULT '20170130' OBLIGATORY, p_int TYPE i OBLIGATORY DEFAULT 450. * p_ser TYPE i OBLIGATORY DEFAULT 1000. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file. PERFORM frm_f4_help CHANGING p_file. AT SELECTION-SCREEN. CLEAR l_exit. ***结果提取 IF t_matdoc[] IS NOT INITIAL. PERFORM frm_guidown USING 'C:/MM_IMPORT/MATDOC.TXT' t_matdoc[]. CLEAR t_matdoc[]. l_exit = 'X'. ENDIF. IF gt_return[] IS NOT INITIAL. PERFORM frm_guidown USING 'C:/MM_IMPORT/ERROR_INFO.TXT' gt_return[]. CLEAR gt_return[]. l_exit = 'X'. ENDIF. IF gt_error[] IS NOT INITIAL. PERFORM frm_guidown USING 'C:/MM_IMPORT/FAILE.TXT' gt_error[]. CLEAR gt_error[]. l_exit = 'X'. ENDIF. IF gt_serial[] IS NOT INITIAL. PERFORM frm_guidown USING 'C:/MM_IMPORT/SERIAL.TXT' gt_serial[]. CLEAR gt_serial[]. l_exit = 'X'. ENDIF. IF l_exit = 'X'. EXIT. ENDIF. ******************** CLEAR: l_answer. IF p_int > 499. MESSAGE '物料凭证行项目数不能超过499' TYPE 'E'. ENDIF. IF p_bwart = '561' OR p_bwart = '562' OR p_bwart = '563' OR p_bwart = '564' OR p_bwart = '565' OR p_bwart = '566'. ELSE. MESSAGE e000(zdev) WITH '移动类型有误,请更改后重新导入!'. ENDIF. CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING text_question = '是否执行批导入操作?' default_button = '3' IMPORTING answer = l_answer. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. IF l_answer = '1'. PERFORM frm_data_import. PERFORM frm_dataprocess. IF t_matdoc[] IS NOT INITIAL. PERFORM frm_guidown USING 'C:/MM_IMPORT/MATDOC.TXT' t_matdoc[]. CLEAR t_matdoc[]. ENDIF. IF gt_return[] IS NOT INITIAL. PERFORM frm_guidown USING 'C:/MM_IMPORT/ERROR_INFO.TXT' gt_return[]. CLEAR gt_return[]. ENDIF. IF gt_error[] IS NOT INITIAL. PERFORM frm_guidown USING 'C:/MM_IMPORT/FAILE.TXT' gt_error[]. CLEAR gt_error[]. ENDIF. IF gt_serial[] IS NOT INITIAL. PERFORM frm_guidown USING 'C:/MM_IMPORT/SERIAL.TXT' gt_serial[]. CLEAR gt_serial[]. ENDIF. ENDIF. START-OF-SELECTION. END-OF-SELECTION. DATA:l_message(300) TYPE c. LOOP AT t_log. CONCATENATE '消息类型:' t_log-type ' 消息:' t_log-message_v1 t_log-message_v2 t_log-message_v3 t_log-message_v4 INTO l_message. WRITE: / l_message. ENDLOOP. *&---------------------------------------------------------------------* *& Form FRM_DATA_IMPORT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM frm_data_import . REFRESH: t_kucun. PERFORM frm_excel_upload USING p_file CHANGING t_kucun[]. ENDFORM. " FRM_DATA_IMPORT *&---------------------------------------------------------------------* *& Form FRM_GUI_UPLOAD *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_U_FNAME text *----------------------------------------------------------------------* FORM frm_excel_upload USING u_fname CHANGING c_table TYPE STANDARD TABLE. * DATA l_fname TYPE string DATA l_fname TYPE RLGRAP-FILENAME. l_fname = u_fname. * DATA t_table TYPE ALSMEX_TABLINE. * t_table = c_table. * CALL FUNCTION 'GUI_UPLOAD' * EXPORTING * filename = l_fname * filetype = 'ASC' * has_field_separator = 'X' * codepage = '8400' * TABLES * data_tab = c_table * EXCEPTIONS * file_open_error = 1 * file_read_error = 2 * no_batch = 3 * gui_refuse_filetransfer = 4 * invalid_type = 5 * no_authority = 6 * unknown_error = 7 * bad_data_format = 8 * header_not_allowed = 9 * separator_not_allowed = 10 * header_too_long = 11 * unknown_dp_error = 12 * access_denied = 13 * dp_out_of_memory = 14 * disk_full = 15 * dp_timeout = 16 ** OTHERS = 17. * CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' * EXPORTING * FILENAME = l_fname * I_BEGIN_COL = 1 * I_BEGIN_ROW = 1 * I_END_COL = 100 * I_END_ROW = 1000 * TABLES * INTERN = t_table * EXCEPTIONS * INCONSISTENT_PARAMETERS = 1 * UPLOAD_OLE = 2 * OTHERS = 3 * . * IF SY-SUBRC <> 0. ** Implement suitable error handling here * ENDIF. * * CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' * EXPORTING * FILENAME = l_fname * I_BEGIN_COL = 1 * I_BEGIN_ROW = 1 * I_END_COL = 100 * I_END_ROW = 10000 * TABLES INTERN = c_table * EXCEPTIONS * DATA: l_raw TYPE truxs_t_text_data. * CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' EXPORTING * I_FIELD_SEPERATOR = i_line_header = 'X' i_tab_raw_data = l_raw i_filename = l_fname TABLES i_tab_converted_data = c_table EXCEPTIONS conversion_failed = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE 'E'. STOP. endif. * IF sy-subrc <> 0. * MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno * WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. * ENDIF. ENDFORM. " FRM_GUI_UPLOAD *&---------------------------------------------------------------------* *& Form frm_f4_help *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->O_FNAME text *----------------------------------------------------------------------* FORM frm_f4_help CHANGING o_fname TYPE rlgrap-filename. DATA: l_filetab TYPE filetable, l_waftab LIKE LINE OF l_filetab, l_rc TYPE i. CALL METHOD cl_gui_frontend_services=>file_open_dialog EXPORTING window_title = '打开文件' initial_directory = 'C:/' CHANGING file_table = l_filetab rc = l_rc EXCEPTIONS file_open_dialog_failed = 1 cntl_error = 2 error_no_gui = 3 not_supported_by_gui = 4 OTHERS = 5. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. EXIT. ELSE. READ TABLE l_filetab INTO l_waftab INDEX 1. o_fname = l_waftab-filename. CLEAR: l_filetab, l_waftab. ENDIF. ENDFORM. " frm_f4_help * *&---------------------------------------------------------------------* *& Form frm_inputformat *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * <--P_PP text *----------------------------------------------------------------------* FORM frm_inputformat CHANGING u_value. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = u_value IMPORTING output = u_value. ENDFORM. " frm_inputformat *&---------------------------------------------------------------------* *& Form FRM_DATAPROCESS *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM frm_dataprocess . DATA: l_count TYPE bapi2017_gm_serialnumber-matdoc_itm, l_menge TYPE i, l_sernr TYPE equi-sernr, messagebar(40) TYPE c, l_lines TYPE i, l_line TYPE i, str_lines TYPE string, str_line TYPE string, l_last TYPE c. REFRESH: t_gvitem,t_serial,tmp_gvitem. CLEAR: l_count,l_menge. LOOP AT t_kucun. PERFORM frm_inputformat CHANGING t_kucun-matnr. TRANSLATE t_kucun-batch TO UPPER CASE. MODIFY t_kucun. ENDLOOP. * DESCRIBE TABLE t_kucun LINES l_lines. * str_lines = l_lines. * SORT t_kucun BY matnr werks lgort menge lgtyp lgpla. "vbeln posnr."不排序处理-2014.12.01 LOOP AT t_kucun. IF t_kucun-matnr <> ''. PERFORM frm_inputformat CHANGING t_kucun-matnr. ENDIF. IF t_kucun-MAKTX <> ''. PERFORM frm_inputformat CHANGING t_kucun-MAKTX. ENDIF. IF t_kucun-lenum <> ''. PERFORM frm_inputformat CHANGING t_kucun-lenum. ENDIF. IF t_kucun-lifnr <> ''. PERFORM frm_inputformat CHANGING t_kucun-lifnr. ENDIF. IF t_kucun-KUNNR ne ''. PERFORM frm_inputformat CHANGING t_kucun-KUNNR. ENDIF. CLEAR: l_sernr,l_last. l_menge = l_menge + 1. l_line = l_line + 1. str_line = l_line. CONCATENATE '库存导入中!一 一+ : ' str_line '/' str_lines INTO messagebar. CLEAR: t_gvitem,tmp_gvitem. l_count = l_count + 1. SHIFT t_kucun-matnr LEFT DELETING LEADING '0'. t_gvitem-material = t_kucun-matnr. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = t_gvitem-material IMPORTING OUTPUT = t_gvitem-material. . t_gvitem-plant = t_kucun-werks. t_gvitem-stge_loc = t_kucun-lgort. t_gvitem-entry_qnt = t_kucun-menge. t_gvitem-amount_lc = t_kucun-amount_lc. t_gvitem-batch = t_kucun-batch. t_gvitem-prod_date = t_kucun-hsdat. t_gvitem-vendor = t_kucun-lifnr. t_gvitem-CUSTOMER = t_kucun-kunnr. t_gvitem-item_text = t_kucun-lgpla. t_gvitem-move_type = p_bwart. t_gvitem-spec_stock = p_sobkz. tmp_gvitem-matdoc_itm = l_count. SHIFT t_kucun-matnr LEFT DELETING LEADING '0'. tmp_gvitem-material = t_kucun-matnr. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = t_gvitem-material IMPORTING OUTPUT = t_gvitem-material. tmp_gvitem-MAKTX = t_kucun-MAKTX. tmp_gvitem-plant = t_kucun-werks. tmp_gvitem-stge_loc = t_kucun-lgort. tmp_gvitem-entry_qnt = t_kucun-menge. tmp_gvitem-amount_lc = t_kucun-amount_lc. tmp_gvitem-batch = t_kucun-batch. tmp_gvitem-prod_date = t_kucun-hsdat. tmp_gvitem-stge_type = t_kucun-lgtyp. tmp_gvitem-stge_bin = t_kucun-lgpla. tmp_gvitem-lenum = t_kucun-lenum. tmp_gvitem-vendor = t_kucun-lifnr. APPEND t_gvitem. APPEND tmp_gvitem. CLEAR l_menge. IF l_count = p_int. "OR l_serial = p_ser. PERFORM frm_goods_mvt. REFRESH: t_gvitem,t_serial,tmp_gvitem. l_last = 'X'. CLEAR l_count. CLEAR l_serial. ENDIF. AT LAST. IF l_last <> 'X'. PERFORM frm_goods_mvt. REFRESH: t_gvitem,t_serial. ENDIF. ENDAT. CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING * PERCENTAGE = 0 text = messagebar. ENDLOOP. ENDFORM. " FRM_DATAPROCESS *&---------------------------------------------------------------------* *& Form FRM_GOODS_MVT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM frm_goods_mvt . DATA: w_header LIKE bapi2017_gm_head_01, materialdocument TYPE bapi2017_gm_head_ret-mat_doc, matdocumentyear TYPE bapi2017_gm_head_ret-doc_year, t_error TYPE TABLE OF bapiret2 WITH HEADER LINE. DATA: tmp_tbnum LIKE ltbk-tbnum, "TR tmp_lgnum LIKE ltbk-lgnum, t_ltbp TYPE TABLE OF ltbp WITH HEADER LINE, it_trite TYPE l03b_trite_t WITH HEADER LINE. "***BAPI L_TO_CREATE_TR 创TO DATA: l_flag TYPE c, l_to TYPE c. REFRESH: t_error,t_ltbp,it_trite. CLEAR: materialdocument,matdocumentyear,tmp_tbnum,tmp_lgnum. w_header-pstng_date = p_date. w_header-doc_date = p_date. w_header-pr_uname = sy-uname. CALL FUNCTION 'BAPI_GOODSMVT_CREATE' EXPORTING goodsmvt_header = w_header goodsmvt_code = '05' IMPORTING materialdocument = materialdocument matdocumentyear = matdocumentyear TABLES goodsmvt_item = t_gvitem goodsmvt_serialnumber = t_serial return = t_error. CLEAR l_flag. LOOP AT t_error. APPEND t_error TO t_log. ENDLOOP. LOOP AT t_error WHERE type = 'E'. "chu cuo MOVE-CORRESPONDING t_error TO gt_return. APPEND gt_return. l_flag = 'X'. ENDLOOP. IF l_flag = 'X'. LOOP AT tmp_gvitem. gt_error-matnr = tmp_gvitem-material. PERFORM frm_outputformat CHANGING gt_error-matnr. gt_error-MAKTX = tmp_gvitem-MAKTX. gt_error-werks = tmp_gvitem-plant. gt_error-lgort = tmp_gvitem-stge_loc. gt_error-menge = tmp_gvitem-entry_qnt. gt_error-lgtyp = tmp_gvitem-stge_type. gt_error-lgpla = tmp_gvitem-stge_bin. gt_error-amount_lc = tmp_gvitem-amount_lc. gt_error-batch = tmp_gvitem-batch. gt_error-hsdat = tmp_gvitem-prod_date. gt_error-lenum = tmp_gvitem-lenum. gt_error-lifnr = tmp_gvitem-vendor. APPEND gt_error. ENDLOOP. ENDIF. IF l_flag <> 'X'. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ENDIF. IF materialdocument IS NOT INITIAL. CLEAR l_to. t_matdoc-materialdocument = materialdocument. "产生凭证结果 APPEND t_matdoc. "物料凭证已产生 WAIT UP TO 2 SECONDS. DO 5 TIMES. SELECT SINGLE tbnum lgnum FROM ltbk INTO (tmp_tbnum,tmp_lgnum) "TR WHERE mblnr = materialdocument AND mjahr = matdocumentyear. IF tmp_tbnum IS NOT INITIAL. EXIT. ENDIF. ENDDO. IF sy-subrc = 0. SELECT * FROM ltbp INTO CORRESPONDING FIELDS OF TABLE t_ltbp WHERE tbnum = tmp_tbnum "tr号 AND lgnum = tmp_lgnum AND elikz <> 'X'. LOOP AT t_ltbp. it_trite-tbpos = t_ltbp-tbpos. "行号 it_trite-altme = t_ltbp-altme. "计量单位 it_trite-anfme = t_ltbp-menge. "数量 it_trite-letyp = 'E1'. "启用托盘管理仓储单位类型 * LOOP AT tmp_gvitem * WHERE material = t_ltbp-matnr AND * plant = t_ltbp-werks AND * stge_loc = t_ltbp-lgort AND * batch = t_ltbp-CHARG AND * entry_qnt = t_ltbp-menge AND * flag <> 'X'. * * it_trite-nltyp = tmp_gvitem-stge_type. * it_trite-nlpla = tmp_gvitem-stge_bin. * it_trite-nlenr = tmp_gvitem-item_text. "托盘编码,SU编码 * * tmp_gvitem-flag = 'X'. * MODIFY tmp_gvitem. * ENDLOOP. LOOP AT tmp_gvitem WHERE matdoc_itm = t_ltbp-mbpos. it_trite-nltyp = tmp_gvitem-stge_type. it_trite-nlpla = tmp_gvitem-stge_bin. it_trite-nlenr = tmp_gvitem-lenum. "托盘编码,SU编码 CHECK sy-subrc = '0'. EXIT. ENDLOOP. it_trite-nlber = '001'. "目的地仓储区,存储区全部为001. IF it_trite-nltyp IS INITIAL OR it_trite-nlpla IS INITIAL. l_to = 'X'. ENDIF. APPEND it_trite. ENDLOOP. CLEAR t_matdoc-tono. IF l_to <> 'X'. CALL FUNCTION 'L_TO_CREATE_TR' "根据TR创建TO EXPORTING i_lgnum = t_ltbp-lgnum "WM仓库号 i_tbnum = tmp_tbnum "TR it_trite = it_trite[] IMPORTING e_tanum = t_matdoc-tono EXCEPTIONS foreign_lock = 1 qm_relevant = 2 tr_completed = 3 xfeld_wrong = 4 ldest_wrong = 5 drukz_wrong = 6 tr_wrong = 7 squit_forbidden = 8 no_to_created = 9 update_without_commit = 10 no_authority = 11 preallocated_stock = 12 partial_transfer_req_forbidden = 13 input_error = 14 OTHERS = 15. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDIF. t_matdoc-to_flag = 'X'. WAIT UP TO 1 SECONDS. ENDIF. " APPEND t_matdoc. "jieguo READ TABLE t_matdoc[] ASSIGNING <fs_matdoc> WITH KEY materialdocument = materialdocument. IF sy-subrc = 0. <fs_matdoc>-tono = t_matdoc-tono. <fs_matdoc>-to_flag = t_matdoc-to_flag. ENDIF. CLEAR t_matdoc. ENDIF. ENDFORM. " FRM_GOODS_MVT *&---------------------------------------------------------------------* *& Form FRM_GUIDOWN *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_T_MATDOC[] text *----------------------------------------------------------------------* FORM frm_guidown USING u_file u_table TYPE STANDARD TABLE. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING filename = u_file filetype = 'ASC' append = 'X' write_field_separator = 'X' TABLES data_tab = u_table. ENDFORM. " FRM_GUIDOWN *&---------------------------------------------------------------------* *& Form FRM_OUTPUTFORMAT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * <--P_GT_ERROR_MATNR text *----------------------------------------------------------------------* FORM frm_outputformat CHANGING c_value. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = c_value IMPORTING output = c_value. ENDFORM. " FRM_OUTPUTFORMAT *Selection texts *---------------------------------------------------------- * P_BWART 移动类型 * P_DATE 过账日期 * P_FILE 导入文件TXT上传路径 * P_INT 物料凭证行项目 * P_SOBKZ 特殊库存 *Messages *---------------------------------------------------------- * * Message class: Hard coded * 物料凭证行项目数不能超过499 *Extracted by Mass Download version 1.4.1 - E.G.Mellodew. 1998-2015. Sap Release 740
^_^很多人都把资料锁进了note里,以后还怎么百度呢^_^
浙公网安备 33010602011771号