SAP上传图片下载

  • SAP图片上传tcode SE78
  • SAP图片下载
  • *&---------------------------------------------------------------------*
    *& Report ZJJ_TEST3
    *&---------------------------------------------------------------------*
    *&
    *&---------------------------------------------------------------------*
    REPORT zjj_test3  NO STANDARD PAGE HEADING.
    
    DATA : g_bytecount             TYPE i,
           g_content               TYPE STANDARD TABLE OF
                                        bapiconten INITIAL SIZE 0,
           g_bitmap_file_bytecount TYPE i,
           g_file_name             TYPE string,
           BEGIN OF g_bitmap_file OCCURS 0,
             line(255) TYPE x,
           END OF g_bitmap_file,
           l_bitmaps     TYPE TABLE OF stxbitmaps WITH HEADER LINE,
           lit_scrfields TYPE TABLE OF dynpread WITH HEADER LINE.
    
    DATA lv_type TYPE stxbitmaps-tdbtype.
    
    PARAMETER: p_object LIKE stxbitmaps-tdobject DEFAULT 'GRAPHICS',
               p_image LIKE  stxbitmaps-tdname
                       DEFAULT 'picture1', "name of the image
               p_id LIKE stxbitmaps-tdid DEFAULT 'BMAP',
               p_type like  stxbitmaps-tdbtype DEFAULT 'BCOL',
               p_file  LIKE  ibipparms-path
                       DEFAULT 'D:\picture1.bmp'.
    *F4 help to get file path
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'F4_FILENAME'
        IMPORTING
          file_name = p_file.
    
    *F4 help search for image files
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_image.
      CALL FUNCTION 'SAPSCRIPT_SEARCH_GRAPHIC_BDS'
        EXPORTING
          selection_screen   = 'X'
          select_entry       = 'X'
          selection_show     = 'X'
        IMPORTING
          e_name             = p_image
        TABLES
          t_selections       = l_bitmaps
        EXCEPTIONS
          nothing_found      = 1
          selection_canceled = 2
          internal_error     = 3
          OTHERS             = 4.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    
    START-OF-SELECTION.
      MOVE p_file TO g_file_name.
    *Get graphics to BDS
    *
      lv_type = 'BCOL'."BMON
      CALL FUNCTION 'SAPSCRIPT_GET_GRAPHIC_BDS'
        EXPORTING
          i_object       = p_object
          i_name         = p_image
          i_id           = p_id
          i_btype        = p_type
        IMPORTING
          e_bytecount    = g_bytecount
        TABLES
          content        = g_content
        EXCEPTIONS
          not_found      = 1
          bds_get_failed = 2
          bds_no_content = 3
          OTHERS         = 4.
      IF sy-subrc <> 0.
        MESSAGE i208(00) WITH 'Image does not exists.'(000).
      ENDIF.
    
      IF NOT g_content[] IS INITIAL.
    *Convert to BITMAP
        CALL FUNCTION 'SAPSCRIPT_CONVERT_BITMAP'
          EXPORTING
            old_format               = 'BDS'
            new_format               = 'BMP'
            bitmap_file_bytecount_in = g_bytecount
          IMPORTING
            bitmap_file_bytecount    = g_bitmap_file_bytecount
          TABLES
            bds_bitmap_file          = g_content
            bitmap_file              = g_bitmap_file
          EXCEPTIONS
            OTHERS                   = 1.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
    *Download to PC
        CALL FUNCTION 'GUI_DOWNLOAD'
          EXPORTING
            bin_filesize            = g_bitmap_file_bytecount
            filename                = g_file_name
            filetype                = 'BIN'
          TABLES
            data_tab                = g_bitmap_file
          EXCEPTIONS
            file_write_error        = 1
            no_batch                = 2
            gui_refuse_filetransfer = 3
            invalid_type            = 4
            no_authority            = 5
            unknown_error           = 6
            header_not_allowed      = 7
            separator_not_allowed   = 8
            filesize_not_allowed    = 9
            header_too_long         = 10
            dp_error_create         = 11
            dp_error_send           = 12
            dp_error_write          = 13
            unknown_dp_error        = 14
            access_denied           = 15
            dp_out_of_memory        = 16
            disk_full               = 17
            dp_timeout              = 18
            file_not_found          = 19
            dataprovider_exception  = 20
            control_flush_error     = 21
            OTHERS                  = 22.
        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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值