【ABAP】 屏幕图片显示Demo
生活随笔
收集整理的這篇文章主要介紹了
【ABAP】 屏幕图片显示Demo
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在ABAP屏幕容器中顯示圖片用到的類是“CL_GUI_PICTURE”,下面則以一個簡單的小例子說明其用法,個人學習收藏使用,不代表任何意義。
【效果圖】
【樣例代碼】
REPORT ZABAP_SCREEN01.DATA URL(132). TYPE-POOLS CNDP. * custom container DATA CON1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER. DATA CON2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER. DATA CON3 TYPE REF TO CL_GUI_CUSTOM_CONTAINER.* picture Control. DATA PICTURE1 TYPE REF TO CL_GUI_PICTURE. DATA PICTURE2 TYPE REF TO CL_GUI_PICTURE. DATA PICTURE3 TYPE REF TO CL_GUI_PICTURE.* Definition of Control Framework CLASS CL_GUI_CFW DEFINITION LOAD.* Ps count DATA PS1 TYPE I. DATA PS2 TYPE I. DATA PS3 TYPE I. DATA ZNAM TYPE CHAR20.DATA INIT. DATA OK_CODE TYPE SY-UCOMM.CALL SCREEN 100. *&---------------------------------------------------------------------* *& Module STATUS_0100 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE STATUS_0100 OUTPUT.SET PF-STATUS 'STATUS_0100'.SET TITLEBAR 'STATUS_0100'.ZNAM = SY-UNAME.IF INIT IS INITIAL. * create the custom containerCREATE OBJECT CON1EXPORTINGCONTAINER_NAME = 'CON1'.CREATE OBJECT CON2EXPORTINGCONTAINER_NAME = 'CON2'.CREATE OBJECT CON3EXPORTINGCONTAINER_NAME = 'CON3'. * create the picture controlCREATE OBJECT PICTURE1EXPORTINGPARENT = CON1.CREATE OBJECT PICTURE2EXPORTINGPARENT = CON2.CREATE OBJECT PICTURE3EXPORTINGPARENT = CON3.* Request an URL from the data provider by exporting the pic_data.CLEAR URL.PERFORM LOAD_PIC_FROM_DB USING 'ZHZ' CHANGING URL . * load picture"設置圖片自適應CALL METHOD PICTURE1->SET_DISPLAY_MODEEXPORTINGDISPLAY_MODE = CL_GUI_PICTURE=>ADUST_DESIGN_TRUEEXCEPTIONSERROR = 1OTHERS = 2."設置邊框CALL METHOD PICTURE1->SET_3D_BORDEREXPORTINGBORDER = 1EXCEPTIONSERROR = 1OTHERS = 2.CALL METHOD PICTURE1->LOAD_PICTURE_FROM_URLEXPORTINGURL = URL.INIT = 'X'.* Request an URL from the data provider by exporting the pic_data.CLEAR URL.PERFORM LOAD_PIC_FROM_DB USING 'ZWJD' CHANGING URL . * load picture"設置圖片自適應CALL METHOD PICTURE2->SET_DISPLAY_MODEEXPORTINGDISPLAY_MODE = CL_GUI_PICTURE=>ADUST_DESIGN_TRUEEXCEPTIONSERROR = 1OTHERS = 2."設置邊框CALL METHOD PICTURE2->SET_3D_BORDEREXPORTINGBORDER = 1EXCEPTIONSERROR = 1OTHERS = 2.CALL METHOD PICTURE2->LOAD_PICTURE_FROM_URLEXPORTINGURL = URL.INIT = 'X'.* Request an URL from the data provider by exporting the pic_data.CLEAR URL.PERFORM LOAD_PIC_FROM_DB USING 'ZCDZJ' CHANGING URL . * load picture"設置圖片自適應CALL METHOD PICTURE3->SET_DISPLAY_MODEEXPORTINGDISPLAY_MODE = CL_GUI_PICTURE=>ADUST_DESIGN_TRUEEXCEPTIONSERROR = 1OTHERS = 2."設置邊框CALL METHOD PICTURE3->SET_3D_BORDEREXPORTINGBORDER = 1EXCEPTIONSERROR = 1OTHERS = 2.CALL METHOD PICTURE3->LOAD_PICTURE_FROM_URLEXPORTINGURL = URL.INIT = 'X'.CALL METHOD CL_GUI_CFW=>FLUSHEXCEPTIONSCNTL_SYSTEM_ERROR = 1CNTL_ERROR = 2.IF SY-SUBRC <> 0. * error handlingENDIF.ENDIF. ENDMODULE. *&---------------------------------------------------------------------* *& Module USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE USER_COMMAND_0100 INPUT.CASE OK_CODE .WHEN 'BACK' OR 'EXIT'.LEAVE TO SCREEN 0.WHEN 'CANCEL'.LEAVE PROGRAM.WHEN 'XH1'.PS1 = PS1 + 1.WHEN 'XH2'.PS2 = PS2 + 1.WHEN 'XH3'.PS3 = PS3 + 1.ENDCASE. ENDMODULE. *&---------------------------------------------------------------------* *& Module EXIT INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE EXIT INPUT.CALL METHOD PICTURE1->FREE.CALL METHOD PICTURE2->FREE.CALL METHOD PICTURE3->FREE.CALL METHOD CON1->FREE.CALL METHOD CON2->FREE.CALL METHOD CON3->FREE.FREE PICTURE1.FREE PICTURE2.FREE PICTURE3.FREE CON1. FREE CON2. FREE CON3.LEAVE PROGRAM. ENDMODULE. " EXIT INPUT*&---------------------------------------------------------------------* *& Form LOAD_PIC_FROM_DB *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * <--P_URL text *----------------------------------------------------------------------* FORM LOAD_PIC_FROM_DB USING NAME CHANGING URL.DATA: GRAPHIC_SIZE TYPE I.DATA: BEGIN OF GRAPHIC_TABLE OCCURS 0,LINE(255) TYPE X,END OF GRAPHIC_TABLE.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_BMPEXPORTINGP_OBJECT = 'GRAPHICS'P_NAME = NAMEP_ID = 'BMAP'P_BTYPE = 'BCOL' "(BMON = black&white, BCOL = colour)RECEIVINGP_BMP = L_GRAPHIC_XSTREXCEPTIONSNOT_FOUND = 1OTHERS = 2.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'EXPORTINGTYPE = 'image' "#EC NOTEXTSUBTYPE = CNDP_SAP_TAB_UNKNOWN " 'X-UNKNOWN'SIZE = GRAPHIC_SIZELIFETIME = CNDP_LIFETIME_TRANSACTION "'T'TABLESDATA = GRAPHIC_TABLECHANGINGURL = URLEXCEPTIONSDP_INVALID_PARAMETER = 1DP_ERROR_PUT_TABLE = 2DP_ERROR_GENERAL = 3OTHERS = 4.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.ENDFORM.這里主要用到了其幾個方法:
設置圖片自適應
????CALL?METHOD?PICTURE1->SET_DISPLAY_MODE
??????EXPORTING
????????DISPLAY_MODE?=?CL_GUI_PICTURE=>ADUST_DESIGN_TRUE
??????EXCEPTIONS
????????ERROR????????=?1
????????OTHERS???????=?2.
設置邊框
????CALL?METHOD?PICTURE1->SET_3D_BORDER
??????EXPORTING
????????BORDER?=?1
??????EXCEPTIONS
????????ERROR??=?1
????????OTHERS?=?2.
顯示圖片
????CALL?METHOD?PICTURE1->LOAD_PICTURE_FROM_URL
??????EXPORTING
????????URL?=?URL.
總結
以上是生活随笔為你收集整理的【ABAP】 屏幕图片显示Demo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【ABAP】 汇票收款自动过账FM
- 下一篇: 【学习笔记】SAP CO模块概念信息(上