2010年9月13日

MM03子頁面顯示圖片

前篇提到MM03顯示新的子頁面,在上面放了一張圖片,以下步驟說明如何完成:


1 進入Tcode SMW0,選擇Binary data for WebRFC applications,將圖片上傳至SAP,object name取名叫MY_PIC1


2 在function group ZMGD1 copy screen 1002,給號0200。並在screen layout 拉出一個customer control 取名C_CONTAINER,並在flow logic 新增一個PBO module SET_PICTURE,並填入以下程式碼:


  DATA: G_PICTURE TYPE REF TO CL_GUI_PICTURE,
         G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
         URL 
TYPE LENGTH 255.

  
CLASS CL_GUI_CFW DEFINITION LOAD.

  
IF G_CUSTOM_CONTAINER IS INITIAL.

    
CREATE OBJECT G_CUSTOM_CONTAINER
      
EXPORTING
        CONTAINER_NAME              = 
'C_CONTAINER'
      
EXCEPTIONS
        CNTL_ERROR                  = 
1
        CNTL_SYSTEM_ERROR           = 
2
        CREATE_ERROR                = 
3
        LIFETIME_ERROR              = 
4
        LIFETIME_DYNPRO_DYNPRO_LINK = 
5
        
OTHERS                      6.
    
IF SY-SUBRC NE 0.
      
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    
CREATE OBJECT G_PICTURE
      
EXPORTING
        PARENT = G_CUSTOM_CONTAINER
      
EXCEPTIONS
        ERROR  = 
1
        
OTHERS 2.
    
IF SY-SUBRC NE 0.
      
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    
PERFORM LOAD_PIC_FROM_DB USING 'MY_PIC1' CHANGING URL. * load picture
    
CALL METHOD G_PICTURE->LOAD_PICTURE_FROM_URL
      
EXPORTING
        URL    = URL
      
EXCEPTIONS
        ERROR  = 
1
        
OTHERS 2.
    
IF SY-SUBRC NE 0.
      
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    
CALL METHOD CL_GUI_CFW=>FLUSH
      
EXCEPTIONS
        CNTL_SYSTEM_ERROR = 
1
        CNTL_ERROR        = 
2.

  ENDIF.



3 新增一個form routine LOAD_PIC_FROM_DB,可參考程式RSDEMO_DIALOGBOX_CONTROL並修改為可傳入Object Name(詳略)


4 進入Tcode OMT3B修改IMG

沒有留言:

張貼留言