---- 1.引言
---- Developer/2000是ORACLE公司推出的集成化软件开发和运行环境。目前,很多大型企业使用的是ORACLE数据库,而Developer/2000作为其前台开发工具也得到了广泛的应用。ORACLE *Graphics是Developer/2000的一部分,它提供了丰富的图形化表示数据的方法,并可以与Forms模块结合起来,更有效地表示数据。在实际应用中,由于决策者的观察方式和角度不同,因而对同一数据需要不同的图形显示方式。Graphics中提供了多种图形类型,例如,柱图、饼图、线图等。在具体开发应用中可根据用户的需要来选择图形。本文将以直方图、折线图和圆饼图三种图形为例,介绍它们之间进行切换的实现。
---- 2.不同类型图形切换的实现
---- 在Forms中,设计如下界面(图1略)。左边为三个Push Button按钮,分别命名为but1,but2和but3,右边为Chart Item控件Chart_area1,用来显示图形。我们这里以电视机每年销售量为例,并已有直方图chart1(sales.ogd)。在图中,横轴代表时间年,纵轴代表销售量(图2略)。由图2,我们可以清楚地看到每年电视机的销售情况,并可以看出哪一年销量最大,哪一年销量最小,以及各年之间的差额。除了以直方图显示之外,我们还可以用折线图来表示以上数据。折线图能较好地用于趋势分析,并直观地看出销售量的变化趋势。由直方图切换成折线图,需做以下几步:
---- (1)在Graphics的sales.ogd中,设直方图的Templates名为column_type。创建一个Templates,名为Line_type。双击此模板,则进入Chart Template Editor中,设置Field template的值为column;
---- (2)创建过程Column,其程序代码如下:
PROCEDURE column IS
mch og_object;
BEGIN
mch:=og_get_object('chart1');
og_set_template(mch,og_get_template('column_type'));
og_update_chart(mch,og_all_chupda);
END;
---- (3)创建过程Line,其程序代码如下:
PROCEDURE line IS
mch og_object;
BEGIN
mch:=og_get_object('chart1');
og_set_template(mch,og_get_template('pie_type'));
og_update_chart(mch,og_all_chupda);
END;
---- (4)创建过程Update_chart,其程序代码如下:
PROCEDURE update_chart IS
BEGIN
og_execute_query(og_get_query('query0'));
END;
---- (5)回到Forms中,在but1中创建WHEN_BUTTON_PRESSED触发器,并填写如下代码:
og.interpret('c:\sales.ogd',
'chart_area1','column;');
---- (6)在but2中创建WHEN_BUTTON_PRESSED触发器,并填写如下代码:
og.interpret('c:\sales.ogd',
'chart_area1','line;');
---- 以上几步即完成直方图到折线图切换的功能。其运行结果如图3(略)所示。
---- 同理,只要添加饼图模板,编写调用饼图的过程和饼图按钮触发器的程序代码,即可以完成直方图、折线图和圆饼图三图之间的切换功能。圆饼图的运行结果如图4(略)所示。
---- 3.结论
---- 图形是一种可视化的工具,它可以使数据表达得更清晰、更直观,在决策支持系统的开发中起到了很大的作用。但目前Developer/2000的参考书较少,具体实施还需要在实践中不断探索。