在PB中实现Word内容的替换

在PB中实现Word内容的替换,第1张

本文介绍一种在Power Builder(以下简称为PB)中利用OLE把数据库中的数据传送到Word文档的方法 通过这种方法 用户可以根据需求而改变内容 以Word方式打印结果文档 例如 在处理学生成绩时 如果要将每个学生的成绩报告生成Word文档 不同的学生只改变姓名 学号和年度等数据 其他的格式不改变 只要从学生成绩数据库中调出特定数据 插入替换到已经制作好的Word模版中 即可解决问题

一 创建Word模版文档

Word模板文档的创建根据用户的要求进行 在固定的内容输入完成后 将需要变换内容(例如姓名 年度 系别和证书编号等)的位置输入 student_name student_year department 以及 student_id 等编码 注意: 尽量使用英文来表示这些变量 目的是避免某些汉字相同而造成的误替换

在需要动态改变内容的位置 不需要输入文字 可以通过插入书签的方法实现 具体 *** 作如下 首先 选择在Word中 选择 插入 * 书签 d出 书签 对话框(如图 所示) 在 书签名 文本框中输入书签名称后 点击 添加 按钮 即在当前光标位置上增加了一个书签 假设我们增加了 个书签 分别是 name year department以及id 分别代表姓名 年度 系别以及证书编号

二 PB实现方法

在窗体中新建一OLE控件 在d出的 insert object 属性窗口的 create new tab 选项卡中选择 Microsoft Word 文档 选项 点击 OK 按钮后将该控件放在窗体中适当位置 PB系统会自动出现Microsoft Word应用程序 将控件命名为 OLE_Word 并创建 打开文件 替换数据 和 存盘 按钮 编写如下代码

.打开文件 string docname named integer value value = getfileopenname( Select File docname named DOC Doc Files (* DOC) * DOC ) if value = THEN // 将模版文件另存为实际 *** 作文件(程序略) if ole_Word open(docname)= then ole_Word activate(inplace!) end if end if

这里使用 GetFileOpenName 函数让用户自行选择文件 实际应用时可以进行条件的限定 注意: 需要将模版文件另存为实际 *** 作文件后再打开 不能直接 *** 作模版文件 打开文件参数有 种 其中 inplace 表示在PB程序内部窗口调用Word 部分提供Word的功能菜单另一种参数是 offsite 表示PB程序外启动Word应用程序 提供Word的所有功能菜单 简单的演示文档如图 所示

.插入或替换 *** 作

( )替换数据法

string ls_find_string ls_replace_string //取数据库中数据赋值变量ls_replace_string(程序略) ls_find_string = student_name ls_replace_string = 张某 ole_Word object application Selection find Execute(ls_find_string false true false false false true true ls_replace_string ) //替换student_year department student_id的程序与替换student_name相同 略 其运行结果如图 所示

( )插入数据法

除了使用查找替换方式 您还可以使用书签方式来实现上述 *** 作 string ls_name ls_year department ls_id//取数据库中数据赋值变量ls_name ls_year department ls_id(程序略) IF ole_Word object application ActiveDocument Bookmarks Exists( name ) THEN ole_Word object application activedocument bookmarks item( name ) select//定位书签name ole_Word object application selection typetext(ls_name)//插入值 for i = to //消除非法字符 ole_Word object application Selection TypeBackspace() next ELSE//错误提示 END IF //定位书签year department id一样 略 注意事项 :

.一定要判断书签是否存在 如果书签不存在 进行以上 *** 作将导致系统错误 .因为汉字双字节问题 PB 中每插入一个汉字后会在后面产生一非法字符 需要判断汉字个数来决定调用 TypeBackspace() 的次数 上面涉及的 次循环次数是举例说明 实际编程要使用变量替代 上面的 种方法各有利弊 插入数据方式设计思想简单 *** 作容易 控制也比较方便 但不适合多处插入同一内容 并且需要删除产生的非法字符而替换方式只调用一个函数 可以搜索整个文档替换同一内容 并不产生非法字符 但有可能替换掉不该替换的内容 但是涉及的参数太多 不易记住

.存盘

ole_Word save() ole_Word clear()

lishixinzhi/Article/program/SQL/201311/16393

添加书签

步骤:

①.选择要为其指定书签的对象,或单击要插入书签的位置。

②.执行“插入”→“书签”。

③.在“书签名”框中,键入书签名,也可以在下面的列表中选择一个已有的书签名。

注意:书签名必须以字母、汉字、中文标点等开头,可以包含数字但中间不能有空格。

④.单击“添加”按钮,新的书签名将出现在下面的列表中。

注意:

a.如果新插入位置或新对象采用的是已有的书签名,原有的书签将自动取消。

b.为一项内容指定书签,该书签会以灰色括号 ([…]) 的形式出现(括号仅显示在屏幕上,不会打印出来)为一个位置指定的书签,则该书签会显示为灰色I形标记。

ctrl+shift+F5就是调用插入-书签这个命令的

1.打开word

2.打开word文档,把鼠标放到要添加标签的地方。

3.点击“插入”,然后点“书签”

4.根据你的需要编辑书签名,点“添加”就可以了

5.再打开word的时候,点击“标签”,然后点“定位”,就会跳到你做插入书签的位置了。

6.你不需要的话,选中标签,删除就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7920771.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存