1、用PB绘制对比图形
(深圳:独孤求败 2003-05-27)
作为一个完善的信息系统,它给用户的界面应该是图文并茂的,尤其是在同一坐标内绘出各种指标对比曲线,就更加生动
和直观了,目前这种需求是比较迫切的,为此,笔者以POWERBUILDER6.0作为开发工具,数据库选用ORACLE7,作了本文,详解
一下这种对比图的产生方法。
一、建表
如果在同一坐标系内绘制多条曲线,在建表的过程中就应该考虑到表的结构问题,一般建立三个字段就行了。举一个例子
,我们要在同一坐标系内绘出钢材、煤、水泥和石灰的进货曲线,表(JHTAB)的结构包含时间(SJ)、类别(LB)、数量
2、SL)三个字段就行了,并将SJ和LB设为主键。
二、所用到的数据窗口介绍
建立窗口W_1,在上边建立两个数据窗口DW_1、DW_2,DW_1的数据窗口类型选图形格式,用来产生对比图;DW_2为数据维护
窗口,选择GRID式,数据维护完毕,DW_1中立即动态地刷新图形。
三、详细编程过程
1、和ORACLE数据库连接的SCRIPT语句
dbtSQLCA.DBMS="o72"
SQLCA.LogID="zb"
SQLCA.LogPass="zbpasswd"
SQLCA.UserID="zb"
SQLCA
3、ServerName="@snt2"
Connect using sqlca;
open(w_1)
2、建立窗口W_1
3、数据窗口dw_1的制作过程
选择图形类型GRAPH,在图形中选择折线型。横坐标(CATEGORY)选择SJ(时间),纵坐标(value)选择SL(数量),类别(SERIES)选择LB,即建立一折线图形的数据窗口。
4、数据窗口dw_2的制作过程
数据窗口dw_2是为维护数据用的,选GRID型。
5、填写窗口W_1的OPEN事件
dw_1.SetTransObject(sqlca)d
4、w_1.Retrieve()dw_2.SetTransObject(sqlca)dw_2.Retrieve()
这样以来,只要运行程序,就会将原有的数据调入数据窗口,并显示图形和数据。
6、数据维护过程所用的SCRIPT语句(各按钮介绍)
增加(记录):dw_2.insertrow(dw_1.getrow()+1)
删除(当前记录):dw_2.deleterow(0)
放弃(当前的修改):dw_2.retrieve()
存盘(并刷新dw_1的图形):dw_2.update()commit;dw_1.Retrieve()
四、结束语
通过上边的介绍,读者也许会感叹竟然如此简单,但这种思路来之不易,笔者深有体会,希望能对关心这方面编程的用户带来帮助。