2010-03-08 3 views
2

У меня есть пользовательский элемент управления ActiveX, который я бы хотел вызвать из SAP.Как я могу вызвать ActiveX из SAP?

В этом случае я не могу использовать PI, какие у меня есть другие варианты?

ответ

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. 

Я раздел обработку ошибок растровой обработки & в примере программе для того, чтобы дать обзор основных вызовов, которые необходимы.

Смежные вопросы