技术开发 频道

ABAP实例:SAP屏幕插入图片

【IT168 技术文章】

 CONSTANTS: CNTL_TRUE  TYPE I VALUE 1,
      CNTL_FALSE type i value 0.
data:
   h_picture       type ref to cl_gui_picture,
   h_pic_container type ref to cl_gui_custom_container.
*   h_tree          type ref to cl_gui_list_tree,
*   h_docking       type ref to cl_gui_docking_container,
*   h_application   type ref to lcl_application.

data: graphic_url(255),
      graphic_refresh(1),
      g_result                     like cntl_true.

data: begin of graphic_table occurs 0,
        line(255) type x,
      end of graphic_table.

data: graphic_size type i.


 
*--------------------------------------------------------------------*
***INCLUDE ZDISPLAYIMAGEPBO .
*--------------------------------------------------------------------*
*&-------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&-------------------------------------------------------------------*
*       text
*--------------------------------------------------------------------*
module STATUS_0100 output.
data: l_graphic_xstr type xstring,
      l_graphic_conv type i,
      l_graphic_offs type i.
  CALL METHOD cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
    EXPORTING
      p_object  = 'GRAPHICS'
      p_name    = 'ENJOY' "IMAGE NAME - Image name from SE78
      p_id      = 'BMAP'
      p_btype   = 'BMON'  "(BMON = black&white, BCOL = colour)
    RECEIVING
      p_bmp     = l_graphic_xstr
    EXCEPTIONS
      not_found = 1
      OTHERS    = 2.
*  IF sy-subrc = 1.
*    MESSAGE e287 WITH g_stxbitmaps-tdname.
*  ELSEIF sy-subrc <> 0.
*    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*    EXIT.
*  ENDIF.
  graphic_size = XSTRLEN( l_graphic_xstr ).
  CHECK graphic_size > 0.
  l_graphic_conv = graphic_size.
  l_graphic_offs = 0.
  WHILE l_graphic_conv > 255.
    graphic_table-line = l_graphic_xstr+l_graphic_offs(255).
    APPEND graphic_table.
    l_graphic_offs = l_graphic_offs + 255.
    l_graphic_conv = l_graphic_conv - 255.
  ENDWHILE.
  graphic_table-line = l_graphic_xstr+l_graphic_offs(L_GRAPHIC_CONV).
  APPEND graphic_table.
  CALL FUNCTION 'DP_CREATE_URL'
       EXPORTING
          type                 = 'image'               "#EC NOTEXT
          subtype              = cndp_sap_tab_unknown " 'X-UNKNOWN'
          size                 = graphic_size
          lifetime             = cndp_lifetime_transaction  "'T'
       TABLES
          data                 = graphic_table
       CHANGING
          url                  = graphic_url
       EXCEPTIONS
*           dp_invalid_parameter = 1
*           dp_error_put_table   = 2
*           dp_error_general     = 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.
    EXIT.
  ENDIF.
   create object h_pic_container
          exporting container_name =  'CUST_CONTROL'.                      "这个是自己定义的控件名称
   create object h_picture exporting parent = h_pic_container.
   call method h_picture->load_picture_from_url
        exporting url    = graphic_url
        importing result = g_result.
endmodule.                 " STATUS_0100  OUTPUT

 

1
相关文章