当前位置:首页>开发知识>ABAP开发>批导知识>[PP]批量投料

[PP]批量投料

 

*&———————————————————————*

*& REPORT  ZHDL_PP_REPORT_026

*&

*&———————————————————————*

*&

*&

*&———————————————————————*

 

REPORT  zhdl_pp_report_026.

TYPE-POOLStruxs.

TYPE-POOLSslis.

TABLES:mard.

DEFINE fc_add .

  ls_fieldcatfieldname     &1 .

  ls_fieldcatseltext_l      &2 .

  ls_fieldcatoutputlen     &3 .

* LS_FIELDCAT-HOTSPOT       = &4 .

  ls_fieldcatedit          &4 .

  ls_fieldcatdo_sum        &5 .

  ls_fieldcatemphasize     &6 .

 

************INS BY SUNF 2013.7.1 START

*************添加选择列

  ls_fieldcatcheckbox       &7 .

  ls_fieldcatedit       &8 .

*  LS_FIELDCAT-refresh = &9.

************INS BY SUNF 2013.7.1 END

  append  ls_fieldcat to  p_lt_fieldcat .

  clearls_fieldcat .

END-OF-DEFINITION .

 

 

TYPESBEGIN OF record,

        dwerk(004TYPE c ,

        lgort(004TYPE c,

        aufnr(012TYPE c ,

        matnr_com(018TYPE c ,

        maktg_com1(50TYPE c,

        psmng(016TYPE c ,

        amein(003TYPE c ,

        zlabst(016TYPE c,

      END OF record.

 

DATA lt_itab TYPE TABLE OF record WITH HEADER LINE ,

       lt_itab1 TYPE TABLE OF record WITH HEADER LINE .

*       LT_ITAB1 TYPE TABLE OF RECORD WITH HEADER LINE .

DATA lt_pltl TYPE TABLE OF zhdl_pp_st_026 WITH HEADER LINE ,

       lt_pltl1 TYPE TABLE OF zhdl_pp_st_026 WITH HEADER LINE .

 

DATAit_raw TYPE truxs_t_text_data.

 

DATA ls_goodsmvt_header TYPE bapi2017_gm_head_01,

       lt_goodsmvt_item TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE,

       lv_posting_doc TYPE bapi2017_gm_head_ret.

DATA gt_return TYPE TABLE OF bapiret2 WITH HEADER LINE .

 

 

DATAls_layout   TYPE slis_layout_alv ,

      lt_event    TYPE slis_t_event ,

      lt_fieldcat TYPE slis_t_fieldcat_alv ,

      lt_sortinfo TYPE slis_t_sortinfo_alv .

DATAl_exit_caused_by_caller TYPE c ,

      ls_exit_caused_by_user TYPE slis_exit_by_user .

 

DATAit_events TYPE slis_t_event,

      wa_events LIKE LINE OF it_events.

REFRESHit_events.

CLEARwa_events,it_events.

wa_eventsname ‘USER_COMMAND’.

wa_eventsform ‘USER_COMMAND’.

APPEND wa_events TO it_events .

 

 

DATAls_fieldcat TYPE slis_fieldcat_alv  .

DATAg_lights_name TYPE lvc_cifnm VALUE ‘LIGHT’.

 

DATA labst TYPE labst ,

       labst_z TYPE labst ,

       labst_t TYPE labst ,

       s_labst TYPE string ,

       lv_return_code TYPE c,

       lt_return TYPE TABLE OF bapiret2 WITH HEADER LINE.

 

DATAfunctxt TYPE smp_dyntxt.

TABLESsscrfields.

 

SELECTION-SCREEN BEGIN OF BLOCK block3 WITH FRAME TITLE textb01.

PARAMETERp_file TYPE localfile.

SELECTION-SCREEN END OF BLOCK block3.

SELECTION-SCREENFUNCTION KEY 1.

 

INITIALIZATION.

  functxticon_id   ‘con_export’.

  functxticon_text ‘导入模板下载’.

  sscrfieldsfunctxt_01 functxt.

 

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

  DATAfile_table TYPE filetable.

  DATABEGIN OF  wa,

         filename(1024),

        END OF wa.

  DATArc LIKE sysubrc .

  CALL METHOD cl_gui_frontend_services=>file_open_dialog

    EXPORTING

      initial_directory ‘C:\’

    CHANGING

      file_table        file_table

      rc                rc.

 

  LOOP AT file_table INTO wa .

    p_file wafilename.

  ENDLOOP.

 

AT SELECTION-SCREEN.

  CASE syucomm.

    WHEN ‘FC01’.

      PERFORM download_tem.

  ENDCASE.

 

START-OF-SELECTION.

  PERFORM get_data.

  PERFORM alv_display .

*&———————————————————————*

*&      Form  GET_DATA

*&———————————————————————*

*       text

*———————————————————————-*

*  –>  p1        text

*  <–  p2        text

*———————————————————————-*

FORM get_data .

 

*GET UPLOAD DATA

  CALL FUNCTION ‘TEXT_CONVERT_XLS_TO_SAP’

      EXPORTING

*     I_FIELD_SEPERATOR          = ‘;’

         i_line_header              ‘X’   “XLS ÓÐÎÞ±ÊÌ ‘X’ÓбÊÌÂ

        i_tab_raw_data             it_raw

        i_filename                 p_file

      TABLES

        i_tab_converted_data       lt_itab

     EXCEPTIONS

       conversion_failed          1

       OTHERS                     2

              .

  IF sysubrc <> 0.

    MESSAGE e001(读取文件错误!!!).

  ENDIF.

 

  lt_itab1[] lt_itab[] .

 

  LOOP AT lt_itab.

 

 

    MOVE-CORRESPONDING lt_itab TO lt_pltl .

    lt_pltlmessage ‘数据没有问题’ .

    lt_pltllight ‘3’ .

 

    CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’

      EXPORTING

        input  lt_itabaufnr

      IMPORTING

        output lt_itabaufnr.

 

    CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’

      EXPORTING

        input  lt_itabmatnr_com

      IMPORTING

        output lt_itabmatnr_com.

 

 

    IF lt_itabdwerk IS INITIAL

       OR lt_itabmatnr_com IS INITIAL

       OR lt_itabpsmng IS INITIAL

       OR lt_itablgort IS INITIAL

       OR lt_itabamein IS INITIAL

       OR lt_itabaufnr IS INITIAL .

      lt_pltllight ‘1’.

      lt_pltlmessage ‘该行的相关数据不能为空!’  .

      APPEND lt_pltl .

      CLEAR lt_pltl .

 

      CONTINUE .

 

    ENDIF.

 

    SELECT SINGLE werks INTO lt_itabdwerk FROM t001w WHERE

       werks lt_itabdwerk .

 

    IF sysubrc <> 0.

      lt_pltllight ‘1’.

      CONCATENATE  ‘该’  lt_itabdwerk  ‘工厂不存在’ INTO lt_pltlmessage .

      APPEND lt_pltl .

      CLEAR lt_pltl .

      CONTINUE .

    ENDIF.

 

 

    SELECT SINGLE lgort INTO lt_itablgort FROM t001l WHERE

      lgort lt_itablgort AND werks lt_itabdwerk .

 

    IF sysubrc <> 0.

      lt_pltllight ‘1’.

      CONCATENATE  ‘该’ lt_itablgort ‘在’ lt_itabdwerk  ‘工厂下不存在’ INTO lt_pltlmessage .

      APPEND lt_pltl .

      CLEAR lt_pltl .

      CONTINUE .

    ENDIF.

 

    SELECT SINGLE matnr INTO lt_itabmatnr_com FROM marc WHERE

      matnr lt_itabmatnr_com AND werks lt_itabdwerk .

 

    IF sysubrc <> 0.

 

      CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’

        EXPORTING

          input  lt_itabmatnr_com

        IMPORTING

          output lt_itabmatnr_com.

 

      lt_pltllight ‘1’.

      CONCATENATE  ‘该’ lt_itabmatnr_com  ‘在’  lt_itabdwerk ‘工厂下不存在!!’ INTO lt_pltlmessage .

      APPEND lt_pltl .

      CLEAR lt_pltl .

      CONTINUE .

    ENDIF.

 

 

    CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’

      EXPORTING

        input  lt_itabmatnr_com

      IMPORTING

        output lt_itabmatnr_com.

 

    SELECT SINGLE meinh INTO lt_itabamein FROM marm WHERE

      matnr lt_itabmatnr_com AND meinh lt_itabamein .

 

    IF sysubrc <> 0.

 

      CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’

        EXPORTING

          input  lt_itabmatnr_com

        IMPORTING

          output lt_itabmatnr_com.

 

      lt_pltllight ‘1’.

 

      CONCATENATE  ‘该’ lt_itabmatnr_com ‘不存在’ lt_itabamein  ‘单位!!’ INTO lt_pltlmessage .

      APPEND lt_pltl .

      CLEAR lt_pltl .

      CONTINUE .

    ENDIF.

 

    CLEAR labst ,s_labst .

 

    CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’

      EXPORTING

        input  lt_itabmatnr_com

      IMPORTING

        output lt_itabmatnr_com.

 

    SELECT SINGLE rsnum rspos  INTO (lt_pltlrsnum,lt_pltlrsposFROM resb WHERE

      matnr lt_itabmatnr_com AND aufnr lt_itabaufnr .

 

    IF sysubrc <> 0.

 

      CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’

        EXPORTING

          input  lt_itabmatnr_com

        IMPORTING

          output lt_itabmatnr_com.

 

      CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’

        EXPORTING

          input  lt_itabaufnr

        IMPORTING

          output lt_itabaufnr.

 

      lt_pltllight ‘1’.

      CONCATENATE  ‘该’ lt_itabaufnr  ‘和’  lt_itabmatnr_com ‘不存在相关的261预留(伴随生产订单生成的)!!’ INTO lt_pltlmessage .

      APPEND lt_pltl .

      CLEAR lt_pltl .

      CONTINUE .

    ENDIF.

    SELECT SINGLE maktg INTO lt_pltlmaktg_com FROM makt WHERE matnr lt_itabmatnr_com AND spras ‘1’ .

******************INS BY SUNFANG 2013.7.5 START

*    IF LT_ITAB-MAKTG_COM1 <> LT_PLTL-MAKTG_COM.

*      LT_PLTL-LIGHT = ‘2’.

*      CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’

*        EXPORTING

*          INPUT  = LT_ITAB-MATNR_COM

*        IMPORTING

*          OUTPUT = LT_ITAB-MATNR_COM.

*      CONCATENATE  ‘该’ LT_ITAB-MATNR_COM ‘的描述维护不正确’ INTO LT_PLTL-MESSAGE1 .

*      APPEND LT_PLTL .

*      CLEAR LT_PLTL .

*      CONTINUE .

*    ENDIF.

******************INS BY SUNFANG 2013.7.5 END

 

 

 

    lt_pltlbwart ‘261’   .

 

    CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’

      EXPORTING

        input  lt_itabmatnr_com

      IMPORTING

        output lt_itabmatnr_com.

 

 

    SELECT SINGLE labst INTO labst FROM mard WHERE

        werks lt_itabdwerk AND lgort lt_itablgort AND matnr lt_itabmatnr_com  .

    lt_itabzlabst labst.

    lt_pltlzlabst labst.

    CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’

      EXPORTING

        input  lt_itabmatnr_com

      IMPORTING

        output lt_itabmatnr_com.

 

    LOOP AT lt_itab1 WHERE matnr_com lt_itabmatnr_com.

      labst_z lt_itab1psmng .

      labst_t labst_t + labst_z .

      CLEAR labst_z .

    ENDLOOP.

 

    IF labst < labst_t.

 

      CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’

        EXPORTING

          input  lt_itabmatnr_com

        IMPORTING

          output lt_itabmatnr_com.

 

      lt_pltllight ‘1’.

      s_labst labst .

      CONCATENATE  ‘该’ lt_itabmatnr_com ‘当前库存为’  s_labst  ‘,投料数量之和大于当前库存’ INTO lt_pltlmessage .

      APPEND lt_pltl .

      CLEARlt_pltl labst_t  .

      CONTINUE .

    ENDIF.

 

    APPEND lt_pltl .

    CLEAR lt_pltl labst_t .

 

 

  ENDLOOP.

 

ENDFORM.                    ” GET_DATA

*&———————————————————————*

*&      Form  ALV_DISPLAY

*&———————————————————————*

*       text

*———————————————————————-*

*  –>  p1        text

*  <–  p2        text

*———————————————————————-*

FORM alv_display .

 

  PERFORM frm_build_fieldcat CHANGING lt_fieldcat .

  PERFORM frm_build_layout .

  CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’

    EXPORTING

      i_callback_program       syrepid

      i_callback_pf_status_set ‘PF_STATUS_SET’

      i_callback_user_command  ‘USER_COMMAND’

      is_layout                ls_layout

      it_fieldcat              lt_fieldcat

      it_events                it_events

    TABLES

      t_outtab                 lt_pltl

    EXCEPTIONS

      program_error            1

      OTHERS                   2.

  IF sysubrc <> 0.

    MESSAGE ID symsgid TYPE symsgty NUMBER symsgno

            WITH symsgv1 symsgv2 symsgv3 symsgv4.

  ENDIF.

 

ENDFORM.                    ” ALV_DISPLAY

*&———————————————————————*

*&      Form  FRM_BUILD_FIELDCAT

*&———————————————————————*

*       text

*———————————————————————-*

*      <–P_LT_FIELDCAT  text

*———————————————————————-*

FORM frm_build_fieldcat  CHANGING p_lt_fieldcat TYPE slis_t_fieldcat_alv .

  REFRESH p_lt_fieldcat .

  fc_add ‘LIGHT’            ‘指示灯’    ’10’ ” ” ” ” ”.

  fc_add ‘DWERK’            ‘工厂’      ‘7’ ” ” ” ” ” .

  fc_add ‘AUFNR’            ‘生产订单’    ’12’ ” ” ” ” ”.

  fc_add ‘LGORT’            ‘库存地点’    ’12’ ” ” ” ” ” .

  fc_add ‘RSNUM’            ‘预留编号’    ’10’ ” ” ” ” ” .

  fc_add ‘RSPOS’            ‘预留行号’    ’10’ ” ” ” ” ”.

  fc_add ‘MATNR_COM’        ‘组件物料号’        ’10’ ” ” ” ” ” .

  fc_add ‘MAKTG_COM’        ‘组件物料描述’        ’25’ ” ” ” ” ” .

  fc_add ‘ZLABST’            ‘线边库库存’      ’13’ ” ” ” ” ” .

  fc_add ‘PSMNG’            ‘消耗数量’      ’13’ ” ” ” ” ” .

  fc_add ‘AMEIN’            ‘单位’    ‘4’ ” ” ” ” ” .

  fc_add ‘BWART’            ‘移动类型’    ’10’ ” ” ” ” ” .

  fc_add ‘MESSAGE’          ‘数据信息’    ‘100’ ” ” ” ” ” .

ENDFORM.                    ” FRM_BUILD_FIELDCAT

*&———————————————————————*

*&      Form  FRM_BUILD_LAYOUT

*&———————————————————————*

*       text

*———————————————————————-*

*  –>  p1        text

*  <–  p2        text

*———————————————————————-*

FORM frm_build_layout .

 

  ls_layoutlights_fieldname g_lights_name.

 

ENDFORM.                    ” FRM_BUILD_LAYOUT

*&———————————————————————*

*&      FORM  USER_COMMAND

*&———————————————————————*

*       TEXT

*———————————————————————-*

*      –>UCOMM      TEXT

*      –>SELFIELD   TEXT

*———————————————————————-*

FORM user_command USING ucomm LIKE syucomm

                         selfield TYPE slis_selfield.

  DATAlr_grid TYPE REF TO cl_gui_alv_grid.

  CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’

    IMPORTING

      e_grid lr_grid.

  CALL METHOD lr_grid->check_changed_data.

  selfieldrefresh ‘X’.

 

  CASE ucomm.

    WHEN ‘DEL_PO’.

      DELETE lt_pltl WHERE light ‘1’ .

 

    WHEN ‘OK_ALL’.

      DELETE lt_pltl WHERE light ‘1’.

      READ TABLE lt_pltl WITH KEY light ‘1’ .

      IF sysubrc 0.

        MESSAGE ‘数据有误,请查看红灯数据,根据错误信息在文件中改正并重新上传!’ TYPE ‘S’ DISPLAY LIKE ‘E’.

        EXIT.

      ENDIF.

      PERFORM goodsmvt_create  .

 

    WHEN ‘&F031’ .

      SET SCREEN 0.

 

    WHEN ‘&F151’.

      SET SCREEN 0.

 

    WHEN ‘&F121’ .

      SET SCREEN 0.

 

  ENDCASE.

 

  IF gt_return[] IS NOT INITIAL .

    PERFORM display_log TABLES gt_return.

  ENDIF.

 

  CLEAR gt_return[] .

 

ENDFORM.                    “USER_COMMAND

*&———————————————————————*

*&      Form  PF_STATUS_SET

*&———————————————————————*

*       text

*———————————————————————-*

*      –>UT_EXCLUDE text

*———————————————————————-*

FORM pf_status_set USING ut_exclude TYPE slis_t_extab .

  SET PF-STATUS ‘STATUS_100’ .

ENDFORM .                    “PF_STATUS_SET

*&———————————————————————*

*&      Form  FRM_GOODSMVT_CREATE

*&———————————————————————*

*       text

*———————————————————————-*

*  –>  p1        text

*  <–  p2        text

*———————————————————————-*

FORM goodsmvt_create .

 

  lt_pltl1[] lt_pltl[] .

  SORT lt_pltl1 BY aufnr ASCENDING .

  DELETE ADJACENT DUPLICATES FROM lt_pltl1 COMPARING aufnr .

 

  LOOP AT lt_pltl1.

    lv_return_code ‘S’ .

    CLEAR:ls_goodsmvt_header,lt_goodsmvt_item[],lv_posting_doc.

    ls_goodsmvt_headerpstng_date  sydatum.

    ls_goodsmvt_headerdoc_date    sydatum.

    ls_goodsmvt_headerpr_uname    syuname.

 

    LOOP AT lt_pltl WHERE aufnr lt_pltl1aufnr.

 

      CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’

        EXPORTING

          input  lt_pltlaufnr

        IMPORTING

          output lt_pltlaufnr.

 

      CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’

        EXPORTING

          input  lt_pltlmatnr_com

        IMPORTING

          output lt_pltlmatnr_com.

 

      CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’

        EXPORTING

          input  lt_pltlrsnum

        IMPORTING

          output lt_pltlrsnum.

 

      CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’

        EXPORTING

          input  lt_pltlrspos

        IMPORTING

          output lt_pltlrspos.

 

      lt_goodsmvt_itemstge_loc lt_pltllgort .

      lt_goodsmvt_itemorderid  lt_pltlaufnr.“PRODUCTION ORDER

      lt_goodsmvt_itemmove_type  lt_pltlbwart.“收货移动类型

      lt_goodsmvt_itemmaterial lt_pltlmatnr_com.

      lt_goodsmvt_itemplant lt_pltldwerk.

      lt_goodsmvt_itemreserv_no  lt_pltlrsnum.“预留号

      lt_goodsmvt_itemres_item    lt_pltlrspos.“预留行项目

      lt_goodsmvt_itementry_qnt  lt_pltlpsmng.“数量

      lt_goodsmvt_itementry_uom  lt_pltlamein.“单位

      lt_goodsmvt_itemres_type    .“记录类型

 

      APPEND lt_goodsmvt_item.

      CLEAR:lt_goodsmvt_item.

 

    ENDLOOP.

 

 

    CALL FUNCTION ‘BAPI_GOODSMVT_CREATE’

      EXPORTING

        goodsmvt_header  ls_goodsmvt_header

        goodsmvt_code    ’03’

      IMPORTING

        goodsmvt_headret lv_posting_doc

      TABLES

        goodsmvt_item    lt_goodsmvt_item

        return           lt_return.

 

    LOOP AT lt_return WHERE type ‘A’ OR type ‘E’.

      lv_return_code ‘F’.

      MOVE-CORRESPONDING lt_return TO gt_return.

      APPEND gt_return.

    ENDLOOP.

 

    IF lv_return_code ‘S’.

      CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’

        EXPORTING

          wait ‘X’.

 

      gt_returntype ‘S’ .

      gt_returnid ‘ZHDLMSG001’ .

      gt_returnnumber ‘011’ .

      gt_returnmessage_v1 lt_pltl1aufnr.

      gt_returnmessage_v2 lv_posting_docmat_doc .

      gt_returnmessage_v3 lv_posting_docdoc_year .

      APPEND gt_return .

      CLEAR gt_return .

 

      CLEAR:ls_goodsmvt_header,lv_posting_doc,lt_goodsmvt_item[],lt_return[].

    ELSE.

      CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK’.

      EXIT .

    ENDIF.

 

 

  ENDLOOP.

 

ENDFORM.                    ” FRM_GOODSMVT_CREATE

*&———————————————————————*

*&      Form  DISPLAY_LOG

*&———————————————————————*

*       text

*———————————————————————-*

*      –>P_GT_RETURN  text

*———————————————————————-*

FORM display_log  TABLES   p_return STRUCTURE bapiret2 .

  DATA:

    l_log_handle TYPE balloghndl,

    l_s_log      TYPE bal_s_log,

    l_s_msg      TYPE bal_s_msg,

    l_msgno      TYPE symsgno,

    l_s_display_profile TYPE bal_s_prof.

* APPLICATION LOG: GLOBAL: EXPORT MEMORY

  CALL FUNCTION ‘BAL_GLB_MEMORY_EXPORT’.

* APPLICATION LOG: GLOBAL: (PARTIALLY) RESET MEMORY

  CALL FUNCTION ‘BAL_GLB_MEMORY_REFRESH’

    EXPORTING

      i_refresh_all  ‘X’

    EXCEPTIONS

      not_authorized 1

      OTHERS         2.

  IF sysubrc <> 0.

    MESSAGE ID symsgid TYPE symsgty NUMBER symsgno

            WITH symsgv1 symsgv2 symsgv3 symsgv4.

  ENDIF.

* APPLICATION LOG: LOG: CREATE WITH HEADER DATA

  CALL FUNCTION ‘BAL_LOG_CREATE’

    EXPORTING

      i_s_log      l_s_log

    IMPORTING

      e_log_handle l_log_handle

    EXCEPTIONS

      OTHERS       1.

  IF sysubrc <> 0.

    MESSAGE ID symsgid TYPE symsgty NUMBER symsgno

             WITH symsgv1 symsgv2 symsgv3 symsgv4.

  ENDIF.

* MAP FIELD (THERE SHOULD BE A FM FOR THAT ?)

  LOOP AT p_return.

    l_s_msgmsgid p_returnid.

    l_s_msgmsgno p_returnnumber.

    l_s_msgmsgty p_returntype.

    l_s_msgmsgv1 p_returnmessage_v1.

    l_s_msgmsgv2 p_returnmessage_v2.

    l_s_msgmsgv3 p_returnmessage_v3.

    l_s_msgmsgv4 p_returnmessage_v4.

    IF l_s_msgmsgty ‘E’.

      l_s_msgprobclass ‘1’.

    ELSEIF l_s_msgmsgty ‘W’.

      l_s_msgprobclass ‘2’.

    ELSE.

      l_s_msgprobclass ‘3’.

    ENDIF.

*   APPLICATION LOG: LOG: MESSAGE: ADD

    CALL FUNCTION ‘BAL_LOG_MSG_ADD’

      EXPORTING

        i_log_handle l_log_handle

        i_s_msg      l_s_msg

      EXCEPTIONS

        OTHERS       1.

    IF sysubrc <> 0.

      MESSAGE ID symsgid TYPE symsgty NUMBER symsgno

               WITH symsgv1 symsgv2 symsgv3 symsgv4.

    ENDIF.

  ENDLOOP.

* APPLICATION LOG: DISPLAY PROFILE: DISPLAY WITHOUT TREE (POPUP)

  CALL FUNCTION ‘BAL_DSP_PROFILE_POPUP_GET’

    IMPORTING

      e_s_display_profile l_s_display_profile

    EXCEPTIONS

      OTHERS              1.

  IF sysubrc <> 0.

    MESSAGE ID symsgid TYPE symsgty NUMBER symsgno

             WITH symsgv1 symsgv2 symsgv3 symsgv4.

  ENDIF.

* APPLICATION LOG: FULLSCREEN LOG OUTPUT

  l_s_display_profileuse_grid ‘ ‘.

  l_s_display_profiletitle text004.

  CALL FUNCTION ‘BAL_DSP_LOG_DISPLAY’

    EXPORTING

      i_s_display_profile l_s_display_profile

    EXCEPTIONS

      OTHERS              1.

  IF sysubrc <> 0.

    MESSAGE ID symsgid TYPE symsgty NUMBER symsgno

             WITH symsgv1 symsgv2 symsgv3 symsgv4.

  ENDIF.

* APPLICATION LOG: GLOBAL: IMPORT AND INSERT MEMORY

  CALL FUNCTION ‘BAL_GLB_MEMORY_IMPORT’

    EXPORTING

      i_complete_overwrite ‘X’.

 

ENDFORM.                    ” DISPLAY_LOG

*&———————————————————————*

*&      Form  DOWNLOAD_TEM

*&———————————————————————*

*       text

*———————————————————————-*

*  –>  p1        text

*  <–  p2        text

*———————————————————————-*

FORM download_tem .

 

  DATAl_filename TYPE string.

  DATAl_path     TYPE string.

  DATAl_fullpath TYPE string.

  DATAl_wwwdb  TYPE wwwdatatab.

  DATAl_rlgrp  TYPE rlgrapfilename.

  DATAl_subrc  TYPE sysubrc.

  CALL METHOD cl_gui_frontend_services=>file_save_dialog

    EXPORTING

      window_title         ‘Select File’

      default_extension    ‘XLS’

       default_file_name   ‘批量视图维护模板’

*     WITH_ENCODING        =

      file_filter          cl_gui_frontend_services=>filetype_excel

*     INITIAL_DIRECTORY    =

*     PROMPT_ON_OVERWRITE  = ‘X’

    CHANGING

      filename             l_filename

      path                 l_path

      fullpath             l_fullpath

*     USER_ACTION          =

*     FILE_ENCODING        =

    EXCEPTIONS

      cntl_error           1

      error_no_gui         2

      not_supported_by_gui 3

      OTHERS               4.

  IF sysubrc <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  ENDIF.

 

  CLEARl_wwwdbl_rlgrp,l_subrc.

  l_wwwdbrelid ‘MI’.

  l_wwwdbobjid ‘ZPP0030’.

  l_rlgrp l_fullpath.

  CALL FUNCTION ‘DOWNLOAD_WEB_OBJECT’

    EXPORTING

      key               l_wwwdb

     destination       =  l_rlgrp

   IMPORTING

     rc                l_subrc

*   CHANGING

*     TEMP              =

            .

  IF l_subrc <> 0.

    MESSAGE ‘文件下载失败!’ TYPE ‘E’.

    EXIT.

  ENDIF.

ENDFORM.                    ” DOWNLOAD_TEM

给TA打赏
共{{data.count}}人
人已打赏
开发知识点

内表定义追加INCLUDE STRUCTURE

2022-11-21 16:28:34

批导知识

上传txt文件

2022-11-21 16:40:53

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索