注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

XINBO'S SAP BLOG

你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经

 
 
 

日志

 
 

ABAP总结之六,OLE & DOI   

2009-05-18 12:35:01|  分类: ABAP COMMENT |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
提到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(先把文件的类型要注册),方可上传此类型的文件。

     .
 LS_WWWDATATAB-OBJID = .
  
    

 
        

   T-code OAOR是将模版传输到BDS(Business Document Service),然后程序运行时在本地打开进行填制。老白已经在他的blog中已经写了,我这里不再复述。

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

   下面我放一个能直接跑的OLE。





 GV_INTEX  .
       =  = GS_WBOOKLIST .
       = GS_APPLICATION .
       =  = GS_WBOOK .
       = GS_ACTIVESHEET .
       = GV_SHEET_NAME .
 = GS_SHEETS .
       = GS_NEWSHEET .
       = GV_SHEET_NAME .
    

 = GS_CELL1
       = GS_CELL2
       = GS_CELLS
       .


 .

 = GS_CELL1
       =  .
 = GS_FONT .
     =  =  = - = GS_INTERIOR .
     =  = - = - = GS_CELL1
       =  .
     = GS_CELL1
       =  .
     = GS_CELL1
       = GV_INTEX .
 = GS_CELL1
       = GS_CELL2
       = GS_CELLS
       .
     = GS_FONT .
     =  = GS_CELL1
       = GS_CELL2
       = GS_CELLS
       .
     = GS_COLUMNS .
     .
 = GS_CELL1
       = GS_CELL2
       = GS_CELLS
       .
    
    
    #

 = GS_CELL1
       =  .
     = GS_CELL1
       =  .

 = GS_CELL1
         = SY- = GS_CELL1
         = GV_VALUE .
      GV_COLNO = GV_COLNO +  = GS_CELL1
       = GS_CELL2
       = GS_CELLS
       .

     = GS_CHARTS .
     = GS_CHART .
     .
     =  . 
    
       =  = GS_CHARTTITLE .
     = GS_CHARTTITLECHAR .
     =  .

 = GS_ACTIVESHEET
       .
    
       = GS_CHARTOBJECTS .
     .
     .
 = GS_CELL1
       = GS_CELL2
       = GS_CELLS
       .
     .

  

  评论这张
 
阅读(1119)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017