OLE & DOI

提到OLE&DOI,我们不得不先说说两者这间的关系。

   OLE是SAP早期与微软Office集成的工具,而DOI是它的替代技术。在实际项目中使用到OLE&DOI的场合多是EXCEL表格的读入或是填制。有些需要自动画表格及填数据,有的只是要求在原有的模版上填制数据。根据不同的场合可以选用不同的技术。(有些公司用EXCEL的打印来替代FORM)
   下面主要讲一下,OLE&DOI关于EXCEL的处理。
   OLE实际上是类EXCEL中VBA的一种写法。有一种简单的方法,就是你可以在EXCEL中把要实现的动作录制成宏,然后根据宏的代码把它改成OLE。OLE同时也支持直接调用EXCEL宏程序(没有禁宏的前提下)。
   DOI完全用类实现。特点是,你不用再去记那些繁琐的VBA语言了,DOI都给你包装成类的方法了。同时作为一个控件,已经集成在了SAP的GUI中了,你就可以在SAP的屏幕中写Office的东西了,不用再跳出一个窗口来了,减少一些误操作。当然DOI也是支持调用EXCEL宏程序的,前提是宏没有被禁。
   两种方法在实际项目中都有使用,有时候就要看实施顾问擅长于那个了,当然本人还是推荐用新的,但也不要丢了老的(有时候要维护一些老程序或许用得着)。因为两种在技术上并没有什么难点,只有熟练度的差别。我可记不住那么多的方法和类名,一般常备两份模版两份手册在身,边写边查,在项目进度之内完工就OK。
   我读取EXCEL还是比较简单的,这里不再讲了。既然,EXCEL的填制有自动画表格和填制模版之分,而自动画表格,显然就是什么都要自己写,工程量比较大,需要大量的调试(字体、表格宽度、颜色等),没有什么捷径,捧着手册慢慢写吧!对于填制模版,那自然要将模版上传到服务器,程序执行的时候再下载使用。我使用的一般有3中:
  1. FTP
  2. T-code SMW0
  3. T-code OAOR

   FTP顾名思义,就是把文件传到FTP上,然后在运行的时候,直接输入文件服务器的路径,把模版在本地打开填制。

   T-code SMW0。实际上这是用于Web的一种文件存储,不过我们也可以借用来存储模版。当然建立之前要维护相应的MIME types(先把文件的类型要注册),方可上传此类型的文件。

  DATA:LS_WWWDATATAB TYPE WWWDATATAB,
      LS_PATH TYPE RLGRAP-FILENAME.
  
 CONCATENATE 'c:/SapReport/' 'KEVIN' '.xls' INTO LS_PATH.
  
 LS_WWWDATATAB-RELID = 'MI'.
 LS_WWWDATATAB-OBJID = 'ZKEVIN'.
  CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
    EXPORTING
      KEY         = LS_WWWDATATAB
      DESTINATION = LS_PATH.

  CALL METHOD OF G_WBOOKS 'Open'
        EXPORTING
          #1 = LS_PATH.

   T-code OAOR   是将模版传输到BDS(Business Document Service),然后程序运行时在本地打开进行填制。

   DOI和OLE的东西在老白的博客中已经发了很多,大家有兴趣可以看看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值