我有一个自定义ActiveX控件,我想从SAP调用。
在这种情况下我不能使用PI,我还有其他选择吗?
答案 0 :(得分:3)
以程序 SAPRDEMO_ACTIVEX_INTEGRATION 为例。
DATA: control TYPE REF TO i_oi_container_control,
ocx_document TYPE REF TO i_oi_document_proxy,
has_activex TYPE flag,
retcode TYPE soi_ret_string,
doc_handle TYPE cntl_handle,
document_type TYPE soi_document_type VALUE 'SAPActiveXDoc.Example1'.
"Test whether activeX is supported"
CALL FUNCTION 'GUI_HAS_ACTIVEX'
IMPORTING return = has_activex.
CHECK NOT has_activex IS INITIAL.
CALL METHOD control->init_control
EXPORTING r3_application_name = 'R/3 Basis'
inplace_enabled = 'X'
register_on_close_event = 'X'
register_on_custom_event = 'X'
parent = cl_gui_container=>default_screen
IMPORTING retcode = retcode.
CALL METHOD control->get_document_proxy
EXPORTING document_type = document_type
IMPORTING document_proxy = oxc_document
retcode = retcode.
CALL METHOD oxc_document->open_activex_document
IMPORTING retcode = retcode.
CALL METHOD ocx_document->get_document_handle
IMPORTING handle = doc_handle
retcode = retcode.
CALL FUNCTION 'CONTROL_CALL_METHOD'
EXPORTING h_control = doc_handle
method = 'MyMethod'
p_count = 0.
CALL METHOD ocx_document->clsoe_activex_document
IMPORTING retcode = retcode.
我已经删除了屏幕处理&错误处理示例程序,以便概述所需的主要调用。