当前位置:首页>开发知识>ABAP开发>Form打印>[Smart] SAP下载SE78的图片

[Smart] SAP下载SE78的图片

*&---------------------------------------------------------------------*

*& Report  ZDEMO1

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

REPORT  zdemo6 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(255TYPE 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.

PARAMETERp_image LIKE  stxbitmaps-tdname

                   DEFAULT 'ENJOY'"name of the image

           p_file  LIKE  ibipparms-path

                   DEFAULT 'D:\enjoy.bmp'.

" Download File path

*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       'GRAPHICS'

      i_name         p_image

      i_id           'BMAP'

      i_btype        lv_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(00WITH '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.

给TA打赏
共{{data.count}}人
人已打赏
ALV报表Form打印

smartforms填充空行

2022-11-21 16:43:08

Form打印

[Smart] 使用SMARTFORM字段参数设置解决SMARTFORM中数量、金额字段显示问题

2022-11-21 16:44:34

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