用PB开发WEB下报表系统 |
作者:流方 主页:http://liulee.myrice.com |
在建设某公司内部信息网的过程中,涉及到大量的DBF文件直接转换为HTML文件的应用,其他的文件格式(Excel,Access,以及大型数据库的查询)也有这方面的要求,由此用PB实现了基于ODBC查询的PSR文件生成工具。 此生成器的原理是: 1、通过取出表的结构, 2、生成查询的SQL语法, 3、SyntaxFromSQL()函数生成datawindow语法, 4、create()函数生成数据窗 5、将生成的数据窗进行修饰,包括增加对象、删除对象、修饰对象、布置对象等操作,进行数据窗的美化工作。 6、将生成的数据窗用SaveAs()函数另寸为 PSR 文件。 7、在HTML页中使用插件方式或直接连接方式显示该PSR文件。 在实现过程中,使用了数据窗函数Modify()的各种语法来实现对数据窗的修饰,如加入线条,加入文本、改变格式、颜色等。可修饰的内容如下图: 该工具主要有以下特点: 1、自动化 对某些部门而言,需要处理的数据是动态变化的,如某销售公司,每天处理十几报表,报表的形式基本稳定,因此只需将更新后的数据拷贝到指定的位置,或在形成SQL语法时加入一定的条件,即可实现自动化的报表处理。处理时,将需要的报表循环,自动设置ODBC连接参数(用写注册表的方法),自动连接好数据库,打开报表对应的数据窗,检索记录,然后另存为预定的PSR文件即可。 2、实用性 该工具特别针对查询而设计,可扩展到任何用ODBC连接的数据源,只要该数据源支持标准SQL查询即可。特别对于OA中或信息发布中需要将一些沿用已久FOX系统下的DBF文件发布而言,所做工作只要在一次定义后,按几个按钮即可完成。 特别是在NOTES中只要将 PSR 文件作为附件直接插入到文档中,在客户端定义好Plugin,即可实现 WEB 发布。 【技术要点参考】 1、创建数据窗子对象 通过数据窗的Modify()函数实现,语法: dw_report.modify('create text(name=uc_text_001 x="10" y="20" width="300" ....') 通过对具体对象(static text,picture,rectangle,line,compute等)的属性赋值(注意括号的使用与匹配),如x,y,width,height,color,font,background.color,background.mode,expression,format等,即可实现对象的创建。创建对象时特别注意是加入 moveable=1 resizeable=1 语法,实际上是将对象设为可移动,可变大小,这对于对象的调整是比较重要的。 删除对象只需用如下语法: dw_report.modify('destroy uc_text_001') 如何实现象PB开发环境下的创建对象的方式呢? 1、建立菜单(将bar的Toolbar的Object type 设为MenuCascade方式,Item项为各可创建对象), 2、各菜单Item的Clicked Event中写入& |