[返回]

软件世界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()

四、结语

  通过上边的介绍,读者也许会感叹竟然如此简单,但这种思路来之不易,笔者深有体会,希望能对关心这方面编程的用户带来帮助。