简体版
繁体版
英文版

在报表中实现图表功能

概述

Grid++Report 目前提供了柱图、饼图、折线图三种图表类型,可以实现基本的图表功能。图表功能通过图表部件框来实现。图表数据既可以在报表设计时提供,也可以在报表运行时动态提供。图表部件框可以插入到任何类型的报表节中,在内容行、分组头与分组尾节中,同一图表可以多次输出,并可以为每次输出提供不一样的数据。图表在查询显示时,提供了交互事件,通过对交互事件的响应可以为图表提供穿透查询分析功能。图表在查询显示时还可以指定图形与图例的显示区域特定鼠标光标。

在报表设计时为图表提供数据

在报表设计器中,通过编辑图表的‘数据’属性,可以为图表提供静态数据。在编辑图表的数据之前,应首先确定图表的数据序列数与数据组数。图表数据编辑在专门的对话框界面中执行,界面如下:

编辑框中第一行数据为每个数据序列的标签文字,每个标签文字之间用‘;’隔开。编辑框中第二行数据为每个数据组的标签文字,每个标签文字之间用‘;’隔开。从第三行开始为图表各个序列的数据,每个序列数据占据一行,每个数据之间用‘;’隔开。

在报表运行时为图表提供数据

在报表中图表数据一般都是动态变化的,也就是说报表每次运行时,图表数据都有可能不同,并且也只有在报表运行时才能确定图表数据。如果一个图表在整个报表中只输出一次,一般在报表的Initialize事件中为图表提供数据,如位于报表头与报表尾中的图表。如果一个图表要多次输出,就应该在每次输出图表所对应的事件中为图表提供数据,在内容行中的图表应该在 ProcessRecord 事件中提供图表数据,在分组头或分组尾中的图表应该分别在 GroupBegin 与 GroupEnd 事件中提供图表数据。
通过为图表的 Value 属性赋值每个数据序列项的值,通过数据组序号与数据序列序号标识每个数据序列项。一个图表中的数据序列项个数为数据序列数乘数据组数。如果是在ProcessRecord、GroupBegin 或 GroupEnd 事件中提供图表数据,在赋值之前必须调用图表的 PrepareSnapShort 方法,在赋值完成之后必须调用图表的 SnapShort方法。

为图表提供穿透(DrillDown)查询功能

Grid++Report 在报表查询显示时为图表提供了 ChartClickSeries、ChartDblClickSeries、ChartClickLegend、ChartDblClickLegend。

  1. ChartClickSeries:当鼠标单击一个序列项的图形区域时,触发本事件。
  2. ChartDblClickSeries:当鼠标双击一个序列项的图形区域时,触发本事件。
  3. ChartClickLegend:当鼠标单击一个图例项的显示区域时,触发本事件。
  4. ChartDblClickLegend:当鼠标双击一个图例项的显示区域时,触发本事件。

以上四个事件的参数中包括关联序列项的数据组序号与数据序列序号,通过这两个参数可以知道事件关联的序列项,并可以取得其值。如果在事件打开对应的明细图表、明细报表或其它类型的明细数据,这样就为图表提供了透视查询功能。另可以为图表设定专门的图例光标与序列光标,这样当鼠标位于图例项或序列项的显示区域上时,鼠标光标将显示为设定的特定光标,这样为图表透视提供了显著的指示功能。

示例

  • 例子报表模板‘图表.grf’演示了各种类型的图表,并在设计时为图表提供了数据。
  • 例子‘Chart’演示了为明细网格中的图表提供数据,并实现了双击序列项与图例项透视图表的功能。
 

粤ICP备05037369号 Copyright © 2005-2015 rubylong.cn(版权所有:广州锐浪软件技术有限公司)
地址:广州市天河区五山路135号519-04室 电话: 020-82520837
EMAIL:sales@rubylong.cn(销售) support@rubylong.cn(技术支持) 销售QQ:1067004956 641243789