PB中使用FORMULA ONE入门介绍
在使用 POWERBUILDER编程中,往往会遇到处理复杂表格的情况,这些表格数量很大,表格结构复杂,如用一般的 FREEFORM 风格的数据窗口来实现,则报表编程工作会占相当大的时间及精力,一旦报表格式略有改变,则程序的维护工作会很繁琐。其实 VISUAL COMPborder="0" alt="PB中使用FORMULA border="0" alt="PB中使用FORMULA border="0" alt="PB中使用FORMULA border="0" alt="PB中使用FORMULA ONE入门介绍(图四)" />
三、 FORMULA ONE 文件与窗口中的 OLE 对象之间进行读写操作
Ole_1.object.read(“filename”,ref return1)
该句将一个 FORMULA ONE 文件内容读入 OLE 对象,返回值为 return1 。
此后在窗口的 ole_1 中会出现该文件内容,可直接在窗口上修改其内容,也可以双击鼠标右键可进入 FORMULA ONE 的编辑环境中进行修改。
Ole_1.object.savefiledlg(“ 保存文件 ”,ref filename,ref return1)
Ole_1.object.write(filename,return1)
这两句首先给出一个保存文件对话框,让使用者输入一个 FORMULA ONE 文件名,然后再将 OLE 对象内容写入 FORMULA ONE 文件。
实际上, read 、 write 、 savefiledlg 等函数都是 FORMULA ONE 所有的, POWERBUILDER 中只需在 Ole_1 后加一个 object 即可引用这些函数。
四、数据库与 FORMULA ONE 文件之间进行读写操作:
1. 数据库中大文本字段内容读入 FORMULA ONE 文件中:
selectblob 大文本字段名 into :blob 变量名 from 表名 where…
该句查询大文本字段内容到 blob 变量中。
If fileexist(“file1.vts”) then
filedelete(“file1.vts”)
End if
Return1=fileopen(“file1.vts”,streammode!,write!)
以上语句新建了一个临时文件 file1.vts
If return1<>-1 then
filewrite(return1,blob 变量 )
fileclose(return1)
Else
messagebox(“error”, “Can't open file!”)
End if
本条件语句将 blob 变量的内容写入临时文件中,如出错则告警。
2.FORMULA ONE 文件的内容存入数据库中
return1=fileopen(“file1.vts”,streammode!,write!)
If return1<>-1 then
fileread(return1,blob 变量 )
fileclose(return1)
end if
以上语句将临时文件内容读入 blob 变量中。
if len ( blob 变量 )>0 then
updateblob 表名 set 大文本字段名 =:blob 变量 where…
end if
该条件语句给数据库中的大文本字段赋值。
如上所述可以利用 FORMULA ONE 的文件实现 POWERBUILDER 窗口中 OLE 对象与数据库大文本字段之间信息传送。此外,在 POWERBUILDER 中也提供数据窗口中用 EXCEL 做 OLE 对象来存取数据库的大文本字段,但它不能调用 EXCEL 的函数,因此不够灵活。此种方法占用的系统资源是 FORMULA ONE 的数倍,在大型数据库的存取操作中会大大增加日志,存取速度也会减慢,因此不适合大范围应用。
在日常应用中,首先制作一个 FORMULA ONE 的报表模板文件,通过 POWERBUILDER 窗口的 OLE 对象打开该文件,填好内容后存入数据库,此后就可以对数据库中已存在的报表字段进行存取操作。如果报表格式发生变化,则直接修改模板文件即可,不需要改动程序,维护相当方便。
- 最新文章
- 优化你的PowerBuilder程序(1)[01-04]
- PowerBuilder编程技巧四则[01-04]
- 在powerbuilder中使下拉列表框可以和数据关联[01-04]
- 为PB的TreeView实现同步选择[01-04]
- PB中实现图片按钮的mousemove事件[01-04]
- PB编程技巧二则[01-04]
- 相关文章
- 虚拟地景生成系统 1.1v 介绍[01-04]
- 在PowerBuilder中调用ChooseColor函数[01-04]
- 在PowerBuilder中利用DataStore实现查询条..[01-04]
- MMORPG开发入门[01-04]
- 更改Oracle数据库表的表空间(1)[01-04]
- PowerBuilder中的几个注册表函数的介绍[01-04]
