Chinaunix首页 | 论坛 | 博客
  • 博客访问: 404725
  • 博文数量: 120
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 1266
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 16:04
文章分类

全部博文(120)

文章存档

2011年(4)

2010年(10)

2009年(38)

2008年(68)

我的朋友

分类:

2008-09-26 11:23:05

这个程序实际上是我在解决WORD文件签审(校对人,校对时间,批准人,批准时间...)时做的,这些签审信息的位置在表格里,而且都有一个对应的书签.采用的是WORD的OLE方式.
 
***加载OLE类的类型
INCLUDE OLE2INCL .
***定义所用的OLE
DATA GS_WORD TYPE OLE2_OBJECT .        "OLE object handle
DATA GS_DOCUMENTS TYPE OLE2_OBJECT .   "文档
DATA GS_ACTDOC TYPE OLE2_OBJECT .      "活动文档
DATA GS_APPLICATION TYPE OLE2_OBJECT . "应用
DATA GS_SELECTION TYPE OLE2_OBJECT .   "Selection
DATA GS_BOOKMARK TYPE OLE2_OBJECT.
DATA GS_COUNT TYPE OLE2_OBJECT.
DATA GS_ACTWINDOW TYPE OLE2_OBJECT.
DATA GS_ACTPANE TYPE OLE2_OBJECT.
DATA GS_VIEW TYPE OLE2_OBJECT.
DATA GS_FONT TYPE OLE2_OBJECT.
 
***创建word对象,加载doc文件
CREATE OBJECT GS_WORD 'WORD.APPLICATION' .
IF SY-SUBRC NE 0 .
   MESSAGE 'Error while creating OLE object!' TYPE 'I'.
   LEAVE PROGRAM .
ENDIF .
SET PROPERTY OF GS_WORD 'Visible' = '0' .
GET PROPERTY OF GS_WORD 'Documents' = GS_DOCUMENTS .
CALL METHOD OF GS_DOCUMENTS 'Open'
    EXPORTING
       #1 = DOCPATH."本地WORD文件位置
GET PROPERTY OF GS_WORD 'ActiveDocument' = GS_ACTDOC .
CALL METHOD OF GS_ACTDOC 'Unprotect'.
GET PROPERTY OF GS_ACTDOC 'Bookmarks' = GS_BOOKMARK.
GET PROPERTY OF GS_BOOKMARK 'Count' = GS_COUNT.
GET PROPERTY OF GS_ACTDOC 'Application' = GS_APPLICATION .
GET PROPERTY OF GS_APPLICATION 'Selection' = GS_SELECTION .       
 
***replace子程序的第一个参数是书签的名字,要首先在WORD模板定义好
PERFORM REPLACE USING 'GY_MATNUM' IT_TAB2-MATNR."物料号
PERFORM REPLACE USING 'GY_MATNAM' IT_TAB2-MTDES."物料描述
PERFORM REPLACE USING 'GY_SAGMNO' IT_TAB2-OLDMT."旧物料号
PERFORM REPLACE USING 'GY_DOCUNO' IT_TAB2-DOKNR."文件编号
PERFORM REPLACE USING 'GY_DRANUM' IT_TAB2-GCTNR."工程图号
PERFORM REPLACE USING 'GY_MANDRA' IT_TAB2-ZZTNR."制造图号
PERFORM REPLACE USING 'GY_DOCUVE' IT_TAB2-DOKVR."文件版本  
 
***在指定的书签P_FINDTEXT处,删除以前的内容,填写指定的内容P_REPLACETEXT 
FORM REPLACE  USING    P_FINDTEXT
                       P_REPLACETEXT.
***找到书签
  CALL METHOD OF GS_SELECTION 'GoTo'
    EXPORTING
    #1 = '-1'
    #2 = 0
    #3 = 0
    #4 = P_FINDTEXT.
***删除书签位置以前内容
  CALL METHOD OF GS_SELECTION 'MoveEnd'
    EXPORTING
    #1 = '5'
    #2 = '1' .
  CALL METHOD OF GS_SELECTION 'Delete'.
***填写指定的内容
  CALL METHOD OF GS_SELECTION 'TypeText'
    EXPORTING
    #1 = P_REPLACETEXT.
ENDFORM.                    " REPLACE    
阅读(3401) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~