当前位置: 首页 > news >正文

SAP ABAP AA 固定资产导入程序

代码

*&---------------------------------------------------------------------*
*& Report ZRPT_FI_FIXEDASSETS_MAINTAIN
*&---------------------------------------------------------------------*
*& 固定资产导入并折旧
*&---------------------------------------------------------------------*
REPORT zrpt_fi_fixedassets_maintain.
*----------------------------------------------------------------------*
* TABLES
*----------------------------------------------------------------------*
TABLES: sscrfields.
*----------------------------------------------------------------------*
* Types
*----------------------------------------------------------------------*
TYPES: BEGIN OF type_out,posnr  TYPE posnr,      "序号bukrs  TYPE anla-bukrs, "公司代码anln1  TYPE anla-anln1, "资产号anlkl  TYPE anla-anlkl, "资产类txt50  TYPE anla-txt50, "资产描述sernr  TYPE anla-sernr, "序列号invnr  TYPE anla-invnr, "库存编号menge  TYPE anla-menge, "数量meins  TYPE anla-meins, "基本单位aktiv  TYPE anla-aktiv, "资产化日期kostl  TYPE anlz-kostl, "成本中心kostlv TYPE anlz-kostl, "责任成本中心werks  TYPE anlz-werks, "工厂stort  TYPE anlz-stort, "位置raumn  TYPE anlz-raumn, "房间lifnr  TYPE anla-lifnr, "供应商afabe  TYPE anlb-afabe, "折旧范围kansw  TYPE anlc-kansw, "购置价值knafa  TYPE anlc-knafa, "累计折旧nafag  TYPE anlc-nafag, "本年折旧ndjar  TYPE anlb-ndjar, "使用年限ndper  TYPE anlb-ndper, "期间afasl  TYPE anlb-afasl, "折旧码herst  TYPE anla-herst, "制造商txa50  TYPE anla-txa50, "描述扩展ord41  TYPE anla-ord41, "评审小组1ord42  TYPE anla-ord42, "评审小组2ord43  TYPE anla-ord43, "评审小组3*         anln1  TYPE anla-anln1, "资产号anln2  TYPE anla-anln2, "子资产号icon   TYPE icon_d,    "消息类型msg    TYPE bapi_msg,  "消息sel    TYPE c,END OF type_out.*定义内表
DATA: gt_tab TYPE TABLE OF type_out WITH HEADER LINE.*ALV定义
DATA: gt_fieldcat TYPE lvc_t_fcat,gs_fieldcat LIKE LINE OF gt_fieldcat,gt_layout   TYPE TABLE OF lvc_s_layo,gs_layout   TYPE lvc_s_layo,gt_events   TYPE slis_t_event,gs_events   LIKE LINE OF gt_events.
*----------------------------------------------------------------------*
* Definition
*----------------------------------------------------------------------*
DEFINE init_fieldcat.gs_fieldcat-fieldname = &1. " 需要输出的内表的字段名gs_fieldcat-coltext = &2. " 列名称gs_fieldcat-no_zero = &3. "可编辑gs_fieldcat-ref_table = &4.gs_fieldcat-ref_field = &5.APPEND gs_fieldcat TO gt_fieldcat.CLEAR gs_fieldcat.
END-OF-DEFINITION.*----------------------------------------------------------------------*
*                   Selection Screen
*----------------------------------------------------------------------*
SELECTION-SCREEN:FUNCTION KEY 1.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.PARAMETERS: p_file  LIKE rlgrap-filename.PARAMETERS: p_mjahr TYPE mjahr OBLIGATORY .PARAMETERS:P_SUB TYPE CHAR1 AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b1.SELECTION-SCREEN BEGIN OF BLOCK desc WITH FRAME TITLE blktext1.SELECTION-SCREEN COMMENT 1(78) txt1.
SELECTION-SCREEN END OF BLOCK desc.
*&---------------------------------------------------------------------*
*& Initialization
*&---------------------------------------------------------------------*
INITIALIZATION.DATA:LV_REPID TYPE SY-REPID.LV_REPID = SY-REPID.p_mjahr = sy-datum+0(4).sscrfields-functxt_01 = icon_export && '模版下载'.* 获取程序执行记录PERFORM frm_get_rptrunif(zabap_common_program) USING '20230313'CHANGING blktext1 txt1 lv_repid.
*&---------------------------------------------------------------------*
*& At Selection-Screen
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.IF sscrfields-ucomm = 'FC01'.PERFORM frm_get_model USING 'ZRPT_FI_FIXEDASSETS_MAINTAIN'.ELSEIF sy-ucomm <> 'FC01'  AND p_file IS INITIAL.MESSAGE e055(00).ENDIF.AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.PERFORM frm_f4."路径搜索帮助打开*&---------------------------------------------------------------------*
*& Start-Of-Selection
*&---------------------------------------------------------------------*
START-OF-SELECTION.
DATA:LV_STDATUM TYPE SY-DATUM,LV_STUZEIT TYPE SY-UZEIT.LV_STDATUM = SY-DATUM.    "程序执行日期LV_STUZEIT = SY-UZEIT.    "程序执行时间PERFORM frm_upload_data.PERFORM frm_getdata.
* 写入执行记录PERFORM frm_writerptrunrecord(zabap_common_program)USING '20230313' LV_STDATUM  LV_STUZEIT .PERFORM frm_layout.PERFORM frm_fieldcat.PERFORM frm_output.*&---------------------------------------------------------------------*
*&      Form  FRM_GETDATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM frm_getdata .LOOP AT gt_tab.gt_Tab-anln1 = |{ gt_tab-anln1 ALPHA = IN }|.gt_tab-kostl = |{ gt_tab-kostl ALPHA = IN }|.gt_tab-kostlv = |{ gt_tab-kostlv ALPHA = IN }|.gt_tab-lifnr = |{ gt_tab-lifnr ALPHA = IN }|.IF P_SUB IS NOT INITIAL.SELECT SINGLE COUNT(*)FROM ANLAWHERE BUKRS = gt_Tab-BUKRSAND ANLN1 = GT_TAB-ANLN1.IF SY-SUBRC <> 0.gt_tab-ICON = icon_led_red.gt_tab-msg = '对应的主资产不存在,无法创建'.ENDIF.ENDIF.MODIFY gt_tab.ENDLOOP.SORT gt_tab BY posnr.ENDFORM.                    " FRM_GETDATA
*&---------------------------------------------------------------------*
*&      Form  FRM_LAYOUT
*----------------------------------------------------------------------*
FORM frm_layout .gs_layout-zebra = 'X' . " 使ALV界面呈现颜色交替gs_layout-sel_mode = 'A' . " 选择模式,“A”在最左端有选择按钮gs_layout-cwidth_opt = 'X' . " 自动优化列宽gs_layout-detailinit = 'X' . " 是否出现细节屏幕gs_layout-box_fname = 'SEL' . " 选中行
ENDFORM.                    " FRM_LAYOUT
*&---------------------------------------------------------------------*
*&      Form  FRM_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM frm_fieldcat .PERFORM frm_field_lvc TABLES gt_fieldcat USING 'ICON' '' '' '标识' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'MSG'  '' '' '消息' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'ANLN1'  'ANLA' 'ANLN1' '资产号' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'ANLN2'  'ANLA' 'ANLN2' '子资产号' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'POSNR'  'VBAP' 'POSNR' '序号' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'BUKRS'  'ANLA' 'BUKRS' '公司代码' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'ANLKL'  'ANLA' 'ANLKL' '资产类' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'TXT50'  'ANLA' 'TXT50' '资产描述' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'SERNR'  'ANLA' 'SERNR' '序列号' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'INVNR'  'ANLA' 'INVNR' '库存编号' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'MENGE'  'ANLA' 'MENGE' '数量' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'MEINS'  'ANLA' 'MEINS' '基本单位' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'AKTIV'  'ANLA' 'AKTIV' '资产化日期' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'KOSTL'  'ANLZ' 'KOSTL' '成本中心' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'KOSTLV' 'ANLZ' 'KOSTL' '责任成本中心' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'WERKS'  'ANLZ' 'WERKS' '工厂' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'STORT'  'ANLZ' 'STORT' '位置' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'RAUMN'  'ANLZ' 'RAUMN' '房间' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'LIFNR'  'ANLA' 'LIFNR' '供应商' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'AFABE'  'ANLB' 'AFABE' '折旧范围' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'KANSW'  'ANLC' 'KANSW' '购置价值' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'KNAFA'  'ANLC' 'KNAFA' '累计折旧' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'NAFAG'  'ANLC' 'NAFAG' '本年折旧' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'NDJAR'  'ANLB' 'NDJAR' '使用年限' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'NDPER'  'ANLB' 'NDPER' '期间' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'AFASL'  'ANLB' 'AFASL' '折旧码' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'HERST'  'ANLA' 'HERST' '制造商' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'TXA50'  'ANLA' 'TXA50' '描述扩展' '' '' '' '' ''.PERFORM frm_field_lvc TABLES gt_fieldcat USING 'ORD41'  'ANLA' 'ORD41' '模/盘具类型' '' '' '' '' ''.
*  PERFORM frm_field_lvc TABLES gt_fieldcat USING 'ORD42'  'ANLA' 'ORD42' '标签打印' '' '' '' '' ''.
ENDFORM.                    " FRM_FIELDCAT
*&---------------------------------------------------------------------*
*&      Form  FRM_FIELD_LVC
*&---------------------------------------------------------------------*
*       设置字段目录
*----------------------------------------------------------------------*
FORM frm_field_lvc TABLES pt_fieldcat_lvc STRUCTURE lvc_s_fcatUSING pv_fieldname TYPE lvc_rfnamepv_ref_table TYPE lvc_tnamepv_ref_field TYPE lvc_rfnamepv_text TYPE stringpv_edit TYPE cpv_nzero TYPE cpv_f4 TYPE cpv_no_out TYPE cpv_outputlen TYPE i.DATA:ls_fieldcat_lvc TYPE lvc_s_fcat.CLEAR ls_fieldcat_lvc.ls_fieldcat_lvc-fieldname = pv_fieldname.ls_fieldcat_lvc-ref_field = pv_ref_field.ls_fieldcat_lvc-ref_table = pv_ref_table.ls_fieldcat_lvc-colddictxt = 'L'.ls_fieldcat_lvc-scrtext_l = pv_text.ls_fieldcat_lvc-edit = pv_edit.ls_fieldcat_lvc-no_zero = pv_nzero.ls_fieldcat_lvc-f4availabl = pv_f4.ls_fieldcat_lvc-no_out = pv_no_out.ls_fieldcat_lvc-outputlen = pv_outputlen.APPEND ls_fieldcat_lvc TO pt_fieldcat_lvc.
ENDFORM.                       "FRM_FIELD_LVC
*&---------------------------------------------------------------------*
*&      Form  FRM_OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM frm_output .CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGi_callback_program       = sy-repidi_callback_pf_status_set = 'ALV_PF_STATUS'i_callback_user_command  = 'FRM_USER_COMMAD'is_layout_lvc            = gs_layoutit_fieldcat_lvc          = gt_fieldcatTABLESt_outtab                 = gt_tabEXCEPTIONSprogram_error            = 1OTHERS                   = 2.
ENDFORM.                    " FRM_OUTPUT
*&---------------------------------------------------------------------*
*&      Form  alv_pf_status
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM alv_pf_status USING rt_extab TYPE slis_t_extab.        "#EC *SET PF-STATUS 'STANDARD'.
ENDFORM.                    "alv_pf_status
*&---------------------------------------------------------------------*
*&      Form  frm_user_commad
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM frm_user_commad USING p_ucomm TYPE sy-ucomm p_rs_selfield TYPE slis_selfield.CASE p_ucomm.WHEN '&CRET'.PERFORM frm_create. "创建WHEN OTHERS.ENDCASE.* ALV刷新PERFORM frm_refresh.ENDFORM.                    "frm_user_commad
*&---------------------------------------------------------------------*
*& Form FRM_REFRESH
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM frm_refresh .DATA: gcl_grid TYPE REF TO cl_gui_alv_grid.CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTINGe_grid = gcl_grid.gs_layout-no_toolbar = 'X' . "隐藏工具栏CALL METHOD gcl_grid->set_frontend_layoutEXPORTINGis_layout = gs_layout. " 自动优化列宽CALL METHOD gcl_grid->check_changed_data.CALL METHOD gcl_grid->refresh_table_display.
ENDFORM.                    "frm_refresh
*&---------------------------------------------------------------------*
*& Form FRM_F4
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM frm_f4 .CALL FUNCTION 'WS_FILENAME_GET'             "Get file nameEXPORTINGmask             = ',*.* ,*.*.' "',*.xls,*.xlsx.'mode             = '0'title            = TEXT-h10IMPORTINGfilename         = p_fileEXCEPTIONSinv_winsys       = 1no_batch         = 2selection_cancel = 3selection_error  = 4OTHERS           = 5.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_CREATE
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM frm_create .DATA: ls_key                 TYPE bapi1022_key,ls_generaldata         TYPE bapi1022_feglg001,ls_generaldatax        TYPE bapi1022_feglg001x,ls_postinginformation  TYPE bapi1022_feglg002,ls_postinginformationx TYPE bapi1022_feglg002x,ls_timedependentdata   TYPE bapi1022_feglg003,ls_timedependentdatax  TYPE bapi1022_feglg003x,ls_allocations         TYPE bapi1022_feglg004,ls_allocationsx        TYPE bapi1022_feglg004x,ls_origin              TYPE bapi1022_feglg009,ls_originx             TYPE bapi1022_feglg009x,ls_depreciationareas   TYPE bapi1022_dep_areas,ls_depreciationareasx  TYPE bapi1022_dep_areasx,lt_depreciationareas   TYPE TABLE OF bapi1022_dep_areas,lt_depreciationareasx  TYPE TABLE OF bapi1022_dep_areasx,ls_cumulatedvalues     TYPE bapi1022_cumval,lt_cumulatedvalues     TYPE TABLE OF bapi1022_cumval,ls_postedvalues        TYPE bapi1022_postval,lt_postedvalues        TYPE TABLE OF bapi1022_postval,ls_extensionin         TYPE bapiparex,lt_extensionin         TYPE  TABLE OF bapiparex,ls_return              TYPE bapiret2,lt_return              TYPE TABLE OF bapiret2,lt_transactions        TYPE TABLE OF bapi1022_trtype,ls_transactions        TYPE bapi1022_trtype.FIELD-SYMBOLS: <ls_tab> TYPE type_out.DATA:LV_XSUB TYPE CHAR1,lv_ann1 TYPE bapi1022_1-assetmaino,  "固定资产编号lv_area TYPE bf_afabe_d.  "折旧范围IF P_SUB IS NOT INITIAL.LV_XSUB = 'X'.ENDIF.lv_area = '01'.  "LOOP AT gt_tab ASSIGNING <ls_tab> WHERE ICON <> icon_led_red.AT NEW posnr.CLEAR ls_key.ls_key-companycode = <ls_tab>-bukrs.ls_key-asset       = <ls_tab>-anln1.
*--   常规CLEAR: ls_generaldata, ls_generaldatax.ls_generaldata-assetclass  = <ls_tab>-anlkl.    "资产分类ls_generaldata-descript    = <ls_tab>-txt50.    "资产描述ls_generaldata-descript2   = <ls_tab>-txa50.    "附加资产描述ls_generaldata-serial_no   = <ls_tab>-sernr.    "序列号ls_generaldata-invent_no   = <ls_tab>-invnr.    "库存编号ls_generaldata-quantity    = <ls_tab>-menge.    "数量ls_generaldata-base_uom    = <ls_tab>-meins.    "单位ls_generaldatax-assetclass = 'X'.ls_generaldatax-descript   = 'X'.ls_generaldatax-descript2  = 'X'.ls_generaldatax-serial_no  = 'X'.ls_generaldatax-invent_no  = 'X'.ls_generaldatax-quantity   = 'X'.ls_generaldatax-base_uom   = 'X'.CLEAR: ls_postinginformation, ls_postinginformationx .ls_postinginformation-cap_date   = <ls_tab>-aktiv.    "资产化日期ls_postinginformationx-cap_date  = 'X'.*--   与时间相关CLEAR: ls_timedependentdata, ls_timedependentdatax.ls_timedependentdata-costcenter  = <ls_tab>-kostl.    "成本中心ls_timedependentdata-resp_cctr   = <ls_tab>-kostlv.   "成本中心对资产负责ls_timedependentdata-plant       = <ls_tab>-werks.    "工厂ls_timedependentdata-location    = <ls_tab>-stort.    "位置ls_timedependentdata-room        = <ls_tab>-raumn.    "房间ls_timedependentdatax-costcenter = 'X'.ls_timedependentdatax-resp_cctr  = 'X'.ls_timedependentdatax-plant      = 'X'.ls_timedependentdatax-location   = 'X'.ls_timedependentdatax-room       = 'X'.*--   分配CLEAR:ls_allocations,ls_allocationsx.ls_allocations-evalgroup1  = <ls_tab>-ord41.        "评估组1ls_allocations-evalgroup2  = <ls_tab>-ord42.        "评估组2ls_allocations-evalgroup3  = <ls_tab>-ord43.        "评估组3ls_allocationsx-evalgroup1 = 'X'.ls_allocationsx-evalgroup2 = 'X'.ls_allocationsx-evalgroup3 = 'X'.*--   源CLEAR: ls_origin,  ls_originx.ls_origin-vendor_no     = <ls_tab>-lifnr.     "供应商ls_origin-manufacturer  = <ls_tab>-herst.     "制造商IF ls_origin-vendor_no IS NOT INITIAL.ls_originx-vendor_no   = 'X'.ENDIF.IF ls_origin-manufacturer IS NOT INITIAL.ls_originx-manufacturer = 'X'.ENDIF.ENDAT.*-  折旧范围CLEAR: ls_depreciationareas, ls_depreciationareasx.ls_depreciationareas-area       = <ls_tab>-afabe.    "折旧范围ls_depreciationareas-ulife_yrs  = <ls_tab>-ndjar.    "使用年限ls_depreciationareas-ulife_prds = <ls_tab>-ndper.    "期间ls_depreciationareas-dep_key    = <ls_tab>-afasl.    "折旧码APPEND ls_depreciationareas TO lt_depreciationareas.ls_depreciationareasx-area       = <ls_tab>-afabe.ls_depreciationareasx-ulife_yrs  = 'X'.ls_depreciationareasx-ulife_prds = 'X'.ls_depreciationareasx-dep_key    = 'X'.APPEND ls_depreciationareasx TO lt_depreciationareasx.*    CLEAR: ls_depreciationareas, ls_depreciationareasx.
*    ls_depreciationareas-area       = '30'.
*    ls_depreciationareas-ulife_yrs  = <ls_tab>-ndjar.
*    ls_depreciationareas-ulife_prds = <ls_tab>-ndper.
*    ls_depreciationareas-dep_key    = <ls_tab>-afasl.
*    APPEND ls_depreciationareas TO lt_depreciationareas.
*
*    ls_depreciationareasx-area       = '30'.
*    ls_depreciationareasx-ulife_yrs  = 'X'.
*    ls_depreciationareasx-ulife_prds = 'X'.
*    ls_depreciationareasx-dep_key    = 'X'.
*    APPEND ls_depreciationareasx TO lt_depreciationareasx.IF p_mjahr <> sy-datum+0(4).  "往年资产
*--   增加累计折旧CLEAR ls_cumulatedvalues.
*      ls_cumulatedvalues-fisc_year = p_mjahr.        “20230624 DEL 报错往年年度不可用ls_cumulatedvalues-fisc_year = sy-datum+0(4).     "20230624 ADD 会计年度换成当年
*      ls_cumulatedvalues-fisc_year = sy-datum+0(4) - 1.ls_cumulatedvalues-area      = <ls_tab>-afabe.  "折旧范围ls_cumulatedvalues-acq_value = <ls_tab>-kansw.  "购置价值ls_cumulatedvalues-ord_dep   = <ls_tab>-knafa.  "累计折旧APPEND ls_cumulatedvalues TO lt_cumulatedvalues.*      CLEAR ls_cumulatedvalues.
*      ls_cumulatedvalues-fisc_year = p_mjahr .
**      ls_cumulatedvalues-fisc_year = sy-datum+0(4) - 1.
*      ls_cumulatedvalues-area      = '30'.
*      ls_cumulatedvalues-acq_value = <ls_tab>-kansw.
*      ls_cumulatedvalues-ord_dep   = <ls_tab>-knafa.
*      APPEND ls_cumulatedvalues TO lt_cumulatedvalues.ELSE.    "本年资产
*--   增加购置价值CLEAR:ls_transactions.ls_transactions-fisc_year = p_mjahr.ls_transactions-area = <ls_tab>-afabe.      "折旧范围ls_transactions-current_no = '1'.ls_transactions-amount = <ls_tab>-kansw.    "购置价值ls_transactions-assettrtyp = '100'.ls_transactions-valuedate = <ls_tab>-aktiv. "资产化日期ls_transactions-currency = 'CNY'.APPEND ls_transactions TO lt_transactions.ENDIF.
*-  增加正常折旧CLEAR ls_postedvalues.
*    ls_postedvalues-fisc_year = p_mjahr.       “20230624 DEL 报错往年年度不可用ls_postedvalues-fisc_year = sy-datum+0(4).    "20230624 ADD 会计年度换成当年ls_postedvalues-area      = <ls_tab>-afabe.  "折旧范围ls_postedvalues-ord_dep   = <ls_tab>-nafag.  "本年折旧APPEND ls_postedvalues TO lt_postedvalues.*-  启用平行评估或者需要合并就用30
*   CLEAR ls_postedvalues.
*   ls_postedvalues-fisc_year = p_mjahr.
*   ls_postedvalues-area      = '30'.
*   ls_postedvalues-ord_dep   = <ls_tab>-nafag.
*   APPEND ls_postedvalues TO lt_postedvalues.AT END OF posnr.CLEAR gt_tab.CALL FUNCTION 'BAPI_FIXEDASSET_OVRTAKE_CREATE'EXPORTINGkey                 = ls_keyCREATESUBNUMBER     = LV_XSUBgeneraldata         = ls_generaldatageneraldatax        = ls_generaldataxpostinginformation  = ls_postinginformationpostinginformationx = ls_postinginformationxtimedependentdata   = ls_timedependentdatatimedependentdatax  = ls_timedependentdataxallocations         = ls_allocationsallocationsx        = ls_allocationsxorigin              = ls_originoriginx             = ls_originxIMPORTINGasset               = lv_ann1subnumber           = gt_tab-anln2TABLESdepreciationareas   = lt_depreciationareasdepreciationareasx  = lt_depreciationareasxcumulatedvalues     = lt_cumulatedvaluespostedvalues        = lt_postedvaluestransactions        = lt_transactionsextensionin         = lt_extensioninreturn              = lt_return.LOOP AT lt_return INTO ls_return WHERE type CA 'EXA'.IF ls_return-message IS INITIAL.MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-numberWITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4INTO ls_return-message.ENDIF.gt_tab-msg = gt_tab-msg && ls_return-message && ','.ENDLOOP.IF sy-subrc = 0 OR lv_ann1 IS INITIAL.gt_tab-icon = icon_led_red.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.ELSE.gt_tab-icon = icon_led_green.gt_tab-msg = '固定资产创建成功!'.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.ENDIF.gt_tab-anln1 = lv_ann1.MODIFY gt_tab TRANSPORTING anln1 anln2 icon msg WHERE posnr = <ls_tab>-posnr AND ICON <> icon_led_red.CLEAR:ls_key,ls_generaldata,ls_generaldatax,ls_postinginformation,ls_postinginformationx,ls_timedependentdata,ls_timedependentdatax,ls_allocations,ls_allocationsx,ls_origin,ls_originx,ls_depreciationareas,ls_depreciationareasx,ls_cumulatedvalues,ls_postedvalues,ls_extensionin,ls_return.CLEAR: gt_tab, lt_depreciationareas, lt_depreciationareasx,lt_transactions,lt_cumulatedvalues, lt_postedvalues,lt_extensionin, lt_return.ENDAT.ENDLOOP.UNASSIGN <ls_tab>.ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_GET_MODEL
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM frm_get_model  USING    p_objid TYPE wwwdata-objid.DATA: ls_objdata     LIKE wwwdatatab,lv_destination LIKE rlgrap-filename,lv_rc          LIKE sy-subrc,lv_errtxt      TYPE string,lv_fullpath    TYPE string,lv_extension   TYPE string,lv_fname       LIKE rlgrap-filename,ls_formkey     LIKE  wwwdatatab.lv_extension = p_objid.PERFORM get_file_name USING '.xls''Excel|*.xls;'CHANGING lv_fullpath.IF lv_fullpath = space.MESSAGE '请选择下载文件名' TYPE 'E'.ELSE.CONCATENATE lv_fullpath '' INTO lv_fname.SELECT SINGLE relid objidFROM wwwdataINTO CORRESPONDING FIELDS OF ls_objdataWHERE relid = 'MI'AND objid = p_objid .IF sy-subrc NE 0 OR ls_objdata-objid = space.MESSAGE e001(00) WITH '文件不存在!'.ELSE.CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'EXPORTINGkey         = ls_objdatadestination = lv_fnameIMPORTINGrc          = lv_rcCHANGINGtemp        = lv_fname.IF lv_rc NE 0.MESSAGE e001(00) WITH '文件下载失败!'.ENDIF.ENDIF.ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  GET_FILE_NAME
*&---------------------------------------------------------------------*
*       获取要下载的文件名字
*----------------------------------------------------------------------*
FORM get_file_name  USING p_extensionp_file_filterCHANGING p_fullpath.DATA: lv_filename TYPE string VALUE '固定资产导入模板',lv_path     TYPE string,lv_fullpath TYPE string,lv_titile   TYPE string,lv_init_dir TYPE string.CLEAR p_fullpath.CALL METHOD cl_gui_frontend_services=>file_save_dialogEXPORTINGwindow_title         = '保存至'default_extension    = 'xlsx'default_file_name    = lv_filenamefile_filter          = 'Excel Files (*.xlsx)'CHANGINGfilename             = lv_filenamepath                 = lv_pathfullpath             = lv_fullpathEXCEPTIONScntl_error           = 1error_no_gui         = 2not_supported_by_gui = 3OTHERS               = 4.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.p_fullpath = lv_fullpath.ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_UPLOAD_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM frm_upload_data .DATA: lt_intern TYPE STANDARD TABLE OF kcde_intern_struc,ls_excel  LIKE LINE OF lt_intern.FIELD-SYMBOLS: <field> TYPE any.REFRESH lt_intern.CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'EXPORTINGfilename    = p_file  "dataseti_begin_col = 1i_begin_row = 3i_end_col   = 26i_end_row   = 65535TABLESintern      = lt_intern.LOOP AT lt_intern INTO ls_excel.ASSIGN COMPONENT ls_excel-col OF STRUCTURE gt_tab TO <field>.<field> = ls_excel-value.AT END OF row.CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'EXPORTINGinput          = gt_tab-meinsIMPORTINGoutput         = gt_tab-meinsEXCEPTIONSunit_not_found = 1OTHERS         = 2.APPEND gt_tab.CLEAR gt_tab.ENDAT.ENDLOOP.LOOP AT gt_tab.gt_tab-knafa  = gt_tab-knafa * -1.gt_tab-nafag  = gt_tab-nafag * -1.MODIFY gt_tab.ENDLOOP.
ENDFORM.


http://www.mrgr.cn/news/36648.html

相关文章:

  • 双十一数码产品有哪些? 2024年度双十一数码好物推荐
  • Echarts 堆叠柱形图如何添加总计
  • 生产k8s 应用容器内存溢出OOMKilled问题处理
  • [uni-app]小兔鲜-01项目起步
  • pdf转换成word有哪些方法?10种将PDF转成word的方法
  • 【Delphi】Delphi vcl 和 fmx 的区别是什么
  • 暴雨受邀出席2024 AI大模型生态算力峰会
  • 一文通俗讲透 RAG 背后的逻辑,让 AI 回答更精准
  • 7-9 判断一个点是否在园内java
  • 论文阅读- On the Feasibility of Fully AI-automated Vishing Attacks
  • 基于Netty源码学习那些并发技巧
  • 动手学LLM(ch1)
  • ComfyUI基础篇:安装方法(Windows系统)
  • 模版初阶(泛型编程)
  • ollydbg 小记
  • 一键去水印小程序源码系统 下载无水印的高清图片 带完整的安装代码包以及搭建部署教程
  • 欧美网站建设不同地方
  • PG数据库获取表主键信息
  • Spire.PDF for .NET【页面设置】演示:对PDF 文件进行分页
  • 天安生物携手小葫芦,推出数字人用药说明书守护女性宫颈健康