2010-03-08 94 views

回答

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. 

我爲了給需要的是主電話的概述剝離出來的示例程序的屏幕處理&錯誤處理。