ABAP—为Container添加图片

ABAP-Container添加图片

首先创建Container

 

Class的声明&实现:

*---------------------------------------------------------------------*
*       CLASS c_service DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS C_SERVICE DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS  GET_PIC_TAB IMPORTING MIME_URL TYPE CSEQUENCE
                               
EXPORTING PIC_TAB TYPE STANDARD TABLE.
ENDCLASS.                    "c_service DEFINITION

CLASS C_SERVICE IMPLEMENTATION.
  METHOD GET_PIC_TAB.
    DATA PIC_WA TYPE XSTRING.
    DATA LENGTH TYPE I.
    DATA MIME_API TYPE REF TO IF_MR_API.

    MIME_API CL_MIME_REPOSITORY_API=>GET_API( ).


    MIME_API->GETEXPORTING I_URL MIME_URL
                   
IMPORTING E_CONTENT PIC_WA
                   
EXCEPTIONS OTHERS ).

    IF SY-SUBRC 4.
      RETURN.
    ENDIF.

    CLEAR PIC_TAB.

    LENGTH XSTRLENPIC_WA ).

    WHILE LENGTH >= 1022.
      APPEND PIC_WA(1022TO PIC_TAB.
      SHIFT PIC_WA BY 1022 PLACES LEFT IN BYTE MODE.
      LENGTH XSTRLENPIC_WA ).
    ENDWHILE.

    IF LENGTH > 0.
      APPEND PIC_WA TO PIC_TAB.
    ENDIF.

  ENDMETHOD.                    "get_pic_tab
ENDCLASS.                    "c_service IMPLEMENTATION

* PICTURE_CONTROL
DATACONTAINER1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
      CONTAINER2 LIKE CONTAINER1,
      PICT1 TYPE REF TO CL_GUI_PICTURE,
      PICT2 LIKE PICT1,
      EVT_TAB TYPE CNTL_SIMPLE_EVENTS,
      EVT_TAB_LINE LIKE LINE OF EVT_TAB,
      URL(256TYPE C.

 

START-OF-SELECTION事件下为URL添加图片地址:

START-OF-SELECTION.
* Reporting events
  PERFORM INIT_REPORTING.
  PERFORM FOM_GETDATA .
  CALL SCREEN 100.

*&---------------------------------------------------------------------*
*& Form INIT_REPORTING
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM INIT_REPORTING .

  C_SERVICE=>GET_PIC_TAB(
    EXPORTING MIME_URL '/SAP/BC/fp/graphics/FPsamples/Tatze.bmp'
    IMPORTING PIC_TAB  PIC_TAB ).

  CALL FUNCTION 'DP_CREATE_URL'
    EXPORTING
      TYPE    'IMAGE'
      SUBTYPE 'GIF'
    TABLES
      DATA    PIC_TAB
    
CHANGING
      URL     URL.

ENDFORM.

 

PBO事件下显示图片:

*&---------------------------------------------------------------------*
*& Form CREATE_PICTURE_CONTROL
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM CREATE_PICTURE_CONTROL .

  CREATE OBJECTcontainer1 EXPORTING container_name 'CONT02',
                 container2 EXPORTING container_name 'PICTURE2',
                 pict1 EXPORTING parent container1,
                 pict2 EXPORTING parent container2.


  l_alignment cl_gui_control=>align_at_left   +
                cl_gui_control
=>align_at_right  +
                cl_gui_control
=>align_at_top    +
                cl_gui_control
=>align_at_bottom.

  CALL METHOD pict1->set_alignment
    
EXPORTING
      alignment l_alignment.

  CALL METHOD pict1->set_3d_border
    
EXPORTING
      border 1.

  evt_tab_line-eventid cl_gui_picture=>eventid_picture_click.
  evt_tab_line-appl_event ' '.       " System Event!
  APPEND evt_tab_line TO evt_tab.

  CALL METHOD pict1->set_registered_events
    
EXPORTING
      events evt_tab.

  CALL METHOD pict1->load_picture_from_url
    
EXPORTING
      url    url
    
EXCEPTIONS
      OTHERS 4.

ENDFORM.

效果展示:

猜你喜欢

转载自blog.csdn.net/Sundam/article/details/84286178