PB6.5 是客户/ 服务器体系结构下的优秀前台开发工具,具有极强的数据处理能力,是广大程序员开发数据库产品的首选利器。但是在实际开发MIS 系统时,我们对它的报表输出能力深感欠缺。PB 的报表画板和DataWindow 同出一辙,有Freeform 、Grid 等几种格式,Grid 格式有表线,但格式死板,表头也难处理,Freeform 需要自己画线,很麻烦,尤其是带复杂表格的固定式报表,为了对齐表线,花费了大量时间,而且效果并不好。
Microsoft 的office 产品基本上是每机必备的产品,它的Excel 对表格有极强的处理能力,又内嵌功能强大的VBA 宏语言。对上述难于在PB 中设计的报表,我们可以事先在Excel 中作好空模板,然后在PB 中将数据填充到空表中,在PB 中或Excel 中打印即可,减少设计报表时间。其实PB 对Excel 的填充语法,类似VBA 对sheets 的操作。对于熟悉Vfp 的朋友,也可在VFP 中调用,使用相应的VFP 语言也可以得到满意的结果。虽然pb 已经升级到了pb8.0 甚至9.0 但是其6.5 版本的稳定和朴实无华,至今仍然另我难以舍弃。具体代码如下:
// 声明 Ole 对象
Oleobjcet ole1
// 实例化ole 对象
Ole1 = creat oleobjct
Ole1.ConnectToNewObject(“Excel.Application”)
// 设置标题
Ole1.caption = “ 应用标题 ”
// 打开空表模板
Ole1.Workbooks.Open(“c:/zql.xls”)
// 选择相应工作表
Ole1.Worksheets(“zyx”).Select
// 值填充
Ole1.cells(1,1).Value = 相应值
…………
// 公式填充
Ole1.range(“A10”).FormulaR1C1 = “=R[-9]”
// 保存
Ole1.Save
// 退出
Ole1.Quit
该代码在win98 、 winnt4 和 pb6.5 中运行通过。
--------------------End--------------------