本文介绍一种在Power Builder(以下简称为PB)中利用OLE把数据库中的数据传送到Word文档的方法
通过这种方法
用户可以根据需求而改变内容
以Word方式打印结果文档
例如
在处理学生成绩时
如果要将每个学生的成绩报告生成Word文档
不同的学生只改变姓名
学号和年度等数据
其他的格式不改变
只要从学生成绩数据库中调出特定数据
插入或替换到已经制作好的Word模版中
即可解决问题
一创建Word模版文档
Word模板文档的创建根据用户的要求进行在固定的内容输入完成后将需要变换内容(例如姓名年度系别和证书编号等)的位置输入student_namestudent_yeardepartment以及student_id等编码注意: 尽量使用英文来表示这些变量目的是避免某些汉字相同而造成的误替换
在需要动态改变内容的位置不需要输入文字可以通过插入书签的方法实现具体操作如下首先选择在Word中选择插入*书签弹出书签对话框(如图所示)在书签名文本框中输入书签名称后点击添加按钮即在当前光标位置上增加了一个书签假设我们增加了个书签分别是 nameyeardepartment以及id分别代表姓名年度系别以及证书编号
二PB实现方法
在窗体中新建一OLE控件在弹出的insert object属性窗口的create new tab选项卡中选择Microsoft Word 文档选项点击OK按钮后将该控件放在窗体中适当位置PB系统会自动出现Microsoft Word应用程序将控件命名为OLE_Word并创建打开文件替换数据和存盘按钮编写如下代码
.打开文件
string docname named
integer value
value = getfileopenname(Select Filedocname named
DOCDoc Files (*DOC)*DOC)
if value = THEN
// 将模版文件另存为实际操作文件(程序略)
if ole_Wordopen(docname)= then
ole_Wordactivate(inplace!)
end if
end if
这里使用GetFileOpenName函数让用户自行选择文件实际应用时可以进行条件的限定注意: 需要将模版文件另存为实际操作文件后再打开不能直接操作模版文件打开文件参数有种其中inplace表示在PB程序内部窗口调用Word部分提供Word的功能菜单; 另一种参数是offsite表示PB程序外启动Word应用程序提供Word的所有功能菜单简单的演示文档如图所示
[] [] []