Etc

SMW0 의 사진 띄우기(cl_gui_picture)

SWM0 에 업로드한 사진을 불러 프로그램에 호출하는 방법에 대해 알아보겠습니다.

(SMW0: SAP 문서 저장소 티코드)

 

 

 

0. 변수 선언

DATA: pic             TYPE REF TO cl_gui_picture,
          con             TYPE REF TO cl_gui_custom_container.

 

DATA: query_string        LIKE w3query OCCURS 1 WITH HEADER LINE,

           html                      LIKE w3html   OCCURS 1,

           mime                    LIKE  w3mine   OCCURS 0, 

          return_code          LIKE w3param_ret_code,

          content_type        LIKE w3param-cont_type  ,         

          content_length      LIKE w3param-cont_len.

 

DATA: size    TYPE i,

            url     TYPE cndp_url.
        

  

1. 컨테이너 생성

 

CREATE OBJECT con
         EXPORTING
              container_name = 'CONTAINER'.

 

2. PIC 오브젝트 생성 

  CREATE OBJECT pic
         EXPORTING
              parent = con.

 

3. SMW0에 업로드된 파일 불러오기

query_string-name     =  '_OBJECT_ID'.

query_string-value     =  'TEST'.             "SMW0의 업로드한 오브젝트 이름

 

CALL FUNCTION 'WWW_GET_MIME_OBJECT'
  TABLES
    query_string           =  query_string  

    html                        = html 

    mime                      = mime
  CHANGING
    return_code           = return_code

    content_type          = content_type           

   content_length       = content_length
  EXCEPTIONS
    object_not_found           1
    parameter_not_found   2
    OTHERS                        3.

 

4. 불러운 이미지를 url로 변경

 

CHECK sy-subrc = 0.

 

size = content_length.

 

CALL FUNCTION 'DP_CREATE_URL'
  EXPORTING
    type                      =  'image'  

    subtype                 = cndp_sap_tab_unknown      "스탠다드 

    size                       = size  

    lifetime                  = cndp_lifetime_transaction   "스탠다드
TABLES

    data                      = mime  

CHANGING
    url                         = url

  EXCEPTIONS
    OTHERS                        = 1.

 

5. url 로 이미지 띄우기

 

CALL METHOD pic->load_picture_form_url
  EXPORTING

    url        =  url.

 

 

6. 이미지 display mode를 변경할 수 있음 (필수는 아님)

 

* 컨테이너 영역크기에 맞춰 보여주기
  CALL METHOD pic->set_display_mode
    EXPORTING
      display_mode = cl_gui_picture=>display_mode_stretch.

 

** display_mode_norma/ display_mode_normal_center

   display_mode_fit  / display_mode_fit_center  사용가능 .

 

7. EVENT 사용(ex. 이미지 클릭 이벤트)

 

DATA: lt_evt TYPE cntl_simple_events,

          ls_evt LIKE LINE OF lt_evt.

 

CREATE OBJECT lcl_event.

 

ls_evt-evnetid = cl_gui_picture=>eventid_picture_click.

ls_evt-appl_event = ' '.

APPEND ls_evt TO lt_evt.

 

CALL METHOD pic -> set_registered_events

  EXPORTING 

     events = lt_evt.

 

SET AHDLER lcl_event->handle_picture_click FOR pic.

 

**그외 이벤트 사용방법은 alv event와 동일하다.

'Etc' 카테고리의 다른 글

Listbox(Dropdown list) 사용  (0) 2024.02.21
SWM0에서 파일 다운로드하기  (0) 2023.03.22
스마트폼 실행 후 PDF로 파일 변환  (0) 2022.07.19
Number Range ( T-CODE : SNRO )  (0) 2022.02.17
SUBMIT / CALL TRANSACTION  (0) 2021.11.18