CL_GUI_FRONTEND_SERVICES
GET_SCREENSHOT
현재 화면 스크리샷 생성
어디에 써먹는게 좋을지 생각은 안나지만... CL_GUI_FRONTEND_SERVICES 클래스에 재밌는 메소드가 있어서 테스트를 해봤습니다.
실행하면 현재 활성 화면을 캡쳐해서 xstring으로 반환하는 메소드입니다.
# 사용 방법
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GET_SCREENSHOT
IMPORTING
MIME_TYPE_STR = DATA(LV_MIME)
IMAGE = DATA(LV_IMAGE)
EXCEPTIONS
ACCESS_DENIED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
NOT_SUPPORTED_BY_GUI = 4
OTHERS = 5
.
# 사용 예시
현재 화면 스크린샷을 생성하여 CL_GUI_PICTURE로 미리보기 출력
REPORT YTEMP_SANDBOX.
"현재 화면 스크린샷
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GET_SCREENSHOT
IMPORTING
MIME_TYPE_STR = DATA(LV_MIME)
IMAGE = DATA(LV_IMAGE)
EXCEPTIONS
ACCESS_DENIED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
NOT_SUPPORTED_BY_GUI = 4
OTHERS = 5
.
IF SY-SUBRC <> 0.
EXIT.
ELSE.
WRITE:/ LV_MIME.
ENDIF.
"이미지 미리보기
DATA: LO_IMAGE TYPE REF TO CL_GUI_PICTURE,
LO_CONTA TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
LV_TYPE(50) TYPE C,
LV_SUBTYPE(50) TYPE C,
LV_URL TYPE CNDP_URL,
LV_LEN TYPE I,
LT_BTAB TYPE SOLIX_TAB.
SPLIT LV_MIME AT '/' INTO LV_TYPE LV_SUBTYPE.
"XSTRING을 Binary ITab으로 변환
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
BUFFER = LV_IMAGE
* APPEND_TO_TABLE = ' '
IMPORTING
OUTPUT_LENGTH = LV_LEN
TABLES
BINARY_TAB = LT_BTAB
.
"Binary Data의 SAP 내부 URL 생성
CALL FUNCTION 'DP_CREATE_URL'
EXPORTING
TYPE = LV_TYPE
SUBTYPE = LV_SUBTYPE
SIZE = LV_LEN
* DATE =
* TIME =
* DESCRIPTION =
LIFETIME = CNDP_LIFETIME_TRANSACTION
* CACHEABLE =
* SEND_DATA_AS_STRING =
* FIELDS_FROM_APP =
TABLES
DATA = LT_BTAB
* FIELDS =
* PROPERTIES =
* COLUMNS_TO_STRETCH =
CHANGING
URL = LV_URL
EXCEPTIONS
DP_INVALID_PARAMETER = 1
DP_ERROR_PUT_TABLE = 2
DP_ERROR_GENERAL = 3
OTHERS = 4
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
"이미지 뷰어 생성
CREATE OBJECT LO_IMAGE
EXPORTING
PARENT = CL_GUI_CONTAINER=>SCREEN0.
LO_IMAGE->SET_DISPLAY_MODE( CL_GUI_PICTURE=>DISPLAY_MODE_FIT_CENTER ).
LO_IMAGE->LOAD_PICTURE_FROM_URL( LV_URL ).
'ABAP > Function|Class' 카테고리의 다른 글
[Function] MIGO_DIALOG - MIGO 실행(자재문서 조회) (0) | 2023.07.24 |
---|---|
[Function] FI_ITEMS_MASS_CHANGE - 회계전표 품목 변경(FB09) (0) | 2023.07.10 |
[Class] /UI2/CL_JSON=>SERIALIZE, DESERIALIZE (0) | 2023.06.28 |
[Function] BP_JOBLOG_READ - 백그라운드 작업 로그 조회 (0) | 2023.06.26 |
[Function] GET_JOB_RUNTIME_INFO - 현재 백그라운드 작업 정보 (0) | 2023.06.26 |
댓글