PB读取数据库内容,通过OLE产生文档的方式使用很不方便。通过研究rtf文档结构、格式,发现PB的RichtextControl里有很好的解决方法。本文介绍的方法不依赖外部对象,不容易出错,占用资源少,处理速度快,现将自己的程序整理一下,分享给各位使用PB的朋友们。
有更好解决方案的请告诉我。
试验步骤:
PB,窗口添加一个RichText Control,2个button(预览,保存)
1,新建Word或RTF文件,假设内容如下
编号:{No}
.....(其余内容省略)
注:{}内的内容将是用数据替换的对象
然后窗体的open事件中载入模版:
rte_1.datasource( dw_1)
rte_1.insertdocument(getcurrentdirectory()+"/Temp/DBtestDoc.doc", TRUE, FileTypeDoc! )
rte_1.enabled =true
2,在预览button的click事件中加入下面代码:
string xmh
//给xmh赋值
.....
if rte_1.Find("{No}", TRUE, TRUE, FALSE, TRUE) <=0 then
rte_1.InputFieldChangeData("No",xmh)
else
rte_1.InputFieldInsert("No")
rte_1.InputFieldChangeData( "No",xmh)
end if
.....
3,保存Word文件或Rtf文件。保存button的click事件中加入下面代码:
string ls_fileSavedpath,ls_filename
....
//
Rte_1.savedocument(ls_fileSavedpath+"/"+ls_filename)