activex - 如何从 SAP 调用 ActiveX?

标签 activex abap ole

我有一个自定义 ActiveX 控件,我想从 SAP 调用它。

在这种情况下我无法使用 PI,我还有什么其他选择?

最佳答案

请参阅程序 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.

我已经删除了示例程序的屏幕处理和错误处理,以便概述所需的主要调用。

关于activex - 如何从 SAP 调用 ActiveX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2398561/

相关文章:

德尔福XE2。 ActiveX。如何调用GetIDsOfNames来解析少数方法的方法ID?

c# - RDP 客户端 - AxHost.InvalidActiveXStateException

abap - SAP系统中的客户端是什么?

oop - ABAP 对象中的 `ADD-CORRESPONDING` 相当于什么?

c++ - 如何使用 IMoniker 和 IStream 接口(interface)从交换服务器异步读取

c# - 处理 Rdp ActiveX 最小化事件

vba - Excel:对象文本框无法在 protected 与不 protected 工作表状态(带文本解锁)中执行回车...为什么?

abap - 报告每个用户和每个日期的 tcodes 使用情况

sql - 上下文 sp_OAMethod 'send' 中的 msxml3.dll

delphi - 如何使用OleVariant 参数来打印TWebBrowser 对话框?