惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
H
Help Net Security
GbyAI
GbyAI
博客园_首页
G
Google Developers Blog
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
月光博客
月光博客
美团技术团队
B
Blog RSS Feed
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
博客园 - 叶小钗
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss
Engineering at Meta
Engineering at Meta
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
云风的 BLOG
云风的 BLOG
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
P
Proofpoint News Feed

博客园 - NextStep-V

新年学习进行时:关于十二生肖的英文表达 姓名音韵 不完全解码 ON REG EXPRESSION.SYNTAX - NextStep-V WBS ON wedding project (marked) ON sap portal (I) JS 四种定义方式 Dijest :on Web Dynpro or BSP FI模块间集成性设置 SAP系统财务模块的集团公司处理模式 耶鲁大学校长批判民朝大学 XI Dev. guide SAP Exchange Infrastructure POINTS 认识 ITIL Difference between sap_all and sap_new 企业财务流程: 传统存照 ASAP介绍 概要 SAP财务管理大全 精要 Series 心的强大--朱重八传 摘记 挑水与挖井z
on abap and ocx
NextStep-V · 2009-10-22 · via 博客园 - NextStep-V

今天去拜访了一下师傅,很是感慨。。。感慨之余,将所见所闻之新玩意儿找找资料,演练落实一下。

技术这玩意儿,一是要用,用则易学,用则显灵,二是要思,思则明,思则通,思则达,三是要破,不破不立,不能固步自封,如一招鲜,吃遍天,天下唯此术独尊之类思想是不可取的,技术思想、技术手段随着人们智能的发展、应用的深入是不断发展的,永无止境。

abap是面向商业编程用的,对底层和系统的操控能力欠佳,但是,应该还是有一些技术手段弥补这些先天不足的。比如,与ocx结合。

下面援引的一个老白的例子,揭示了一般原理和方法。

REPORT  z_barry_flash NO STANDARD PAGE HEADING.

DATA: cont TYPE REF TO cl_gui_custom_container .

CLASS cl_flash DEFINITION DEFERRED .
DATA: o_flash TYPE REF TO cl_flash .

*---------------------------------------------------------------------*
* CLASS cl_flash DEFINITION
*---------------------------------------------------------------------*
CLASS cl_flash DEFINITION INHERITING FROM cl_gui_control .
  PUBLIC SECTION .
    METHODS:
      constructor
        IMPORTING
          value(shellstyle) TYPE i OPTIONAL
          value(disp_mode) TYPE i OPTIONAL
          value(life_time) TYPE i OPTIONAL
          value(name) TYPE string OPTIONAL
        EXCEPTIONS
          cntl_error
          cntl_install_error .
ENDCLASS .                    "cl_flash DEFINITION

*----------------------------------------------------------------------*
*       CLASS cl_flash IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS cl_flash IMPLEMENTATION .

  METHOD constructor.
    DATA: ctrl_name(80) TYPE c ,
    wf_clsid(100) TYPE c .
    IF NOT cl_gui_object=>activex IS INITIAL .
      wf_clsid = '{D27CDB6E-AE6D-11cf-96B8-444553540000}' .
    ELSE .
      RAISE cntl_error .
    ENDIF .

    CALL METHOD super->constructor
      EXPORTING
        clsid             = wf_clsid
        parent            = cont
        shellstyle        = shellstyle
        lifetime          = life_time
        name              = name
      EXCEPTIONS
        cntl_system_error = 1
        OTHERS            = 2.
    CASE sy-subrc .
      WHEN 1 .
        RAISE cntl_install_error .
      WHEN 2 .
        RAISE cntl_error .
    ENDCASE .

    CALL METHOD set_property
      EXPORTING
        property          = 'Movie'
        value             = 'c:\test.swf'
      EXCEPTIONS
        cntl_system_error = 1
        cntl_error        = 2
        OTHERS            = 3.

    CALL METHOD cl_gui_cfw=>subscribe
      EXPORTING
        ref     = me
        shellid = me->h_control-shellid
      EXCEPTIONS
        OTHERS  = 1.
    IF sy-subrc NE 0 .
      RAISE cntl_error .
    ENDIF .

  ENDMETHOD . "constructor
ENDCLASS . "cl_flash IMPLEMENTATION

START-OF-SELECTION.
  CALL SCREEN 100 .

*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'MAIN'.
  IF cont IS INITIAL.
    CREATE OBJECT cont
      EXPORTING
        container_name = 'CON1'.
    CREATE OBJECT o_flash .
  ENDIF.
ENDMODULE.                 " STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE sy-ucomm.
    WHEN 'BACK'.
      LEAVE PROGRAM.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT