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 |