ABAP DOI 상세 정보 (1)
DOI란 무엇입니까?
DOI는
Desktop Office Integration
의 약자로 SAP가 제공하는 솔루션과 Office를 통합하는 기술 방안입니다.초기 SAP는 OLE 기술로 Office와 통합했습니다.OLE 문법은 VBA를 참조하고 ABAP에서 방법을 호출하여 Excel을 조작하는데 문법의 우호성이 떨어진다.또한 ABAP 내부 테이블에서 Excel에 데이터를 쓰기 때문에 속도가 매우 느리고 성능이 납득하기 어렵다.DOI는 OLE의 대체품으로 볼 수 있으며 대상을 대상으로 하는 방식으로 이루어진다.위에서 말한 두 가지 문제를 잘 해결했다.(참조: Desktop Office Integration 공식 도움말)
DOI 개발 기술 요점
관련 대상
SAP는 Office와 통합되어 코드를 통해 Excel 문서를 만들 수도 있고 Excel 템플릿 문서를 응용 프로그램 서버에 놓고 DOI에서 호출할 수도 있습니다. DOI는 이 문서를 열어 문서를 조작하고 처리합니다.먼저 코드가 Excel 문서를 만드는 방법을 소개합니다.Excel 문서를 작업하려면 다음 네 개 이상의 객체가 필요합니다.
i_oi_container_control
이다.i_oi_document_proxy
이다.i_oi_spreadsheet
cl_bds_document_set
종류로 business document set
를bds로 줄여서bds는 조작할 문서를 관리하는 데 사용되며 한 개 이상의 문서를 포함할 수 있습니다.DOI에서 Excel을 조작하려면
공통 변수 정의
* desktop office integration interface
data: gr_container type ref to cl_gui_container,
gr_control type ref to i_oi_container_control,
gr_document type ref to i_oi_document_proxy,
gr_spreadsheet type ref to i_oi_spreadsheet.
이것들이 바로 우리가 앞에서 언급한 네 가지 필수적인 대상이다.
컨테이너 가져오기
cl_gui_container
류의 정적 방법screen0
은 화면 1000을 가져와gr_에 값을 부여합니다container. form get_container.
gr_container = cl_gui_container=>screen0.
endform.
container control 대상의 실례를 만들고 초기화합니다.
코드는 비교적 직관적이고 해석이 많지 않다.
form create_container_control.
* create container control
call method c_oi_container_control_creator=>get_container_control
importing
control = gr_control.
* initialize control
call method gr_control->init_control
exporting
inplace_enabled = 'X '
inplace_scroll_documents = 'X'
register_on_close_event = 'X'
register_on_custom_event = 'X'
r3_application_name = 'DOI demo by Stone Wang'
parent = gr_container.
endform.
documentproxy 대상을 만드는 실례
form create_excel_document.
call method gr_control->get_document_proxy
exporting
document_type = 'Excel.Sheet'
no_flush = 'X'
importing
document_proxy = gr_document.
call method gr_document->create_document
exporting
document_title = 'DOI test by Stone Wang '
no_flush = 'X '
open_inplace = 'X'.
endform. "create_excel_document
open_inplace
매개변수는 Excel 문서가 독립적으로 표시되는지 SAP GUI에 포함되어 표시되는지 제어합니다.내장형 디스플레이의 경우 gr_control
메서드에서 init_control
매개변수는 inplace_enabled
로 설정됩니다.위의 코드를 통합합니다.
form main.
skip 1.
perform get_container.
perform create_container_control.
perform create_excel_document.
endform.
첫 번째 문장
X
은 반드시 필요합니다. 그렇지 않으면 화면을 만들 수 없습니다.전체 코드
report zdoi_hello.
type-pools: soi.
data: gr_container type ref to cl_gui_container,
gr_control type ref to i_oi_container_control,
gr_document type ref to i_oi_document_proxy,
gr_spreadsheet type ref to i_oi_spreadsheet.
start-of-selection.
perform main.
form get_container.
gr_container = gr_container = cl_gui_container=>screen0.
endform. "get_container
form create_container_control.
* create container control
call method c_oi_container_control_creator=>get_container_control
importing
control = gr_control.
* initialize control
call method gr_control->init_control
exporting
inplace_enabled = 'X '
inplace_scroll_documents = 'X'
register_on_close_event = 'X'
register_on_custom_event = 'X'
r3_application_name = 'DOI demo by Stone Wang'
parent = gr_container.
endform. "create_container_control
form create_excel_document.
call method gr_control->get_document_proxy
exporting
document_type = 'Excel.Sheet'
no_flush = 'X'
importing
document_proxy = gr_document.
call method gr_document->create_document
exporting
document_title = 'DOI test by Stone Wang '
no_flush = 'X '
open_inplace = 'X'.
endform. "create_excel_document
form main.
skip 1.
perform get_container.
perform create_container_control.
perform create_excel_document.
endform.
Excel 문서를 조작하고 템플릿 문서를 다음 절에 가져와서 학습과 이해의 어려움을 낮춥니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.