软件世界1999年第1期
用POWERBUILDER 6.0绘制对比图形的方法和技术
作为一个完善的信息系统,它给用户的界面应该是图文并茂的,尤其是在同一坐标内绘出各种指标对比曲线,就更加生动直观了。目前这种需求比较迫切,为此,笔者以POWERBUILDER
6.0作为开发工具,数据库选用ORACLE 7作了本文,详解一下这种对比图的产生方法。
一、建表
如果在同一坐标系内绘制多条曲线,在建表的过程中就应该考虑到表的结构问题,一般建立三个字段就行了。如,我们要在同一坐标系内绘出钢材、煤、水泥和石灰的进货曲线,表(JHTAB)的结构包含时间(SJ)、类别(LB)、数量(SL)三个字段就行了,并将SJ和LB设为主键。
二、所用数据窗口介绍
建立窗口W-1,在上边建立两个数据窗口DW-1、DW-2,DW-1的数据窗口类型选图形格式,用来产生对比图;DW-2为数据维护窗口,选择GRID式,数据维护完毕,DW-1中立即动态地刷新图形。
三、详细编程过程
在介绍编程过程之前,先给出输出界面,然后介绍编程经过。
1.和ORACLE数据库连接的SCRIPT语句//dot
SQLCA.DBMS=072
SQLCA.LogID=zb
SOLCA.LogPass=zbpasswd"
SQLCA.UserID=zb
SQLCA.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)
DW-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()
四、结语
通过上边的介绍,读者也许会感叹竟然如此简单,但这种思路来之不易,笔者深有体会,希望能对关心这方面编程的用户带来帮助。