新 用 户 注 册】 【热 线 社 区】 【帮 助 信 息
InfoWeb首页 >> 技术天地 >> 编程指南 >> 技术文章
技术天地
相 关 报 道
* 从信息安全到信息保障
 [1999-12-03 21:23]
* 可自行掌握的安全工具——网盾
 [1999-12-03 21:19]
* 数据库设计经验谈
 [1999-12-03 21:15]
* 如何安全彻底地卸下Windows NT
 [1999-12-03 19:59]
* 如何建立自己的Web站点
 [1999-12-03 16:41]
更多相关
PB调用Word制表一法


  在进行Client/Server系统开发中,PowerBuilder无疑是广大程序员的常用工具。PB的DataWindow控件为编程人员提供了一个方便直观的报表生成工具,但对一些特殊要求的报表,用DataWindow去实现就十分困难,若利用Word强大的文档处理功能却能达到理想的效果。笔者在开发一个MIS系统中,尝试将PB与Word结合起来,制作出了令人满意的报表和文档。

  PB与Word结合的基础是微软的自动化技术(OLE Automation)。通过OLE将数据从PB传至Word,借助Word本身具有的VBA功能完成相应的任务。下面以一个简单的例子来说明。

  本例要完成的功能是在一SinglelineEdit控件中输入字串,点击按钮,程序启动Word,打开模板文件将输入的字串插入,然后另存为一新文件。为此,首先在当前目录下生成一Word文件作为模板,文件名为mytemplete.doc,并于适当位置设定书签mybkmark。

  接下来用PB新建一个Window,其上放置两个控件SinglelineEdit和Button,分别命名为sle—input和cb—ok。为简洁起见,在此略去了与本文关系不大的代码,仅将cb—ok的Click Event 中的Script摘录如下:

  //声明变量类型为OLEObject

  OLEObject myword

  long ll—status

  //创建一OLEObject

  myword=Create oleObjec

  //启动OLE自动化服务(即Word),并与之建立连接。

  ll—status=myword.connecttonewobject(″word.Application″)

  if ll—status〈0 then

   messagebox(″错误″,″不能启动Word!″)

  else

  //新增一个Word文档对象

  myword.documents.add(″mytemplete.doc″,false)

  //通过赋值语句,将字串插入′mybkmark′书签位置

  myword.Documents.item(1).Bookmarks.Item(″mybkmark″).Range.Text = sle—input.text

  //另存为′myreport.doc′文件

  myword.documents.item(1).saveas(″myreport.doc″)

  //文档可见

  myword.visible=true

  myword.disconnectobject()

  end if

  //消去内存中的OLEObject变量

  DESTROY myword

  本程序在PB6.0上编译通过,运行时系统必须已安装了Word 97,操作系统应为Windows 95/98。




(作者:程坚 2000年01月07日 12:26)

发表看法,查看讨论,发给朋友,打印本页
InfoWeb首页 >> 技术天地 >> 编程指南 >> 技术文章
|网站地图| |关于我们| |最新更新| |使用说明| |网站检索|
————版权所有1999(C) 未经许可,不得转摘 ————