您的位置:首页 > 数据库

利用单元格属性动态控制统计图的宽度

2009-12-06 15:52 190 查看
润乾报表为用户设计提供了多种多样的统计图类型,供用户通过图形直观形象的展现数据分布状况,其中尤以柱形图和堆积图应用广泛。柱形图和堆积图的单个柱体宽度是根据单元格的宽窄和图形的数量进行拉伸显示的,发布到web页面以后,如果根据参数模板查询出结果展现图形的话,会根据数据的不同,图像有宽有窄,显示效果不一致且缺乏美观。本文就来介绍一下如何利用单元格的属性动态控制统计图图形效果。

思路分析:统计图的图形宽度是根据单元格宽窄和数据多少进行改变的,数据量的多少不能硬性规定,所以需要设置单元格宽窄来解决问题。

首先设计如下图所示的报表模板,保存为堆积柱形图.raq。



这个报表连接的是润乾自带的demo数据源,报表模板的数据集配置为选择EMPLOYEE、DEGREE和TITLE三个表,添加EMPLOYEE.EMPID,DEGREE.NAME,TITLE.TITLENAME三个字段。这个报表的检索条件如下图所示。



其中A2单元格的表达式为:=ds1.group(TITLENAME,false),B2单元格的表达式为:=ds1.group(NAME,false),C2单元格的表达式为:=ds1.count()。A3单元格为堆积图,单击A3单元格右键,选择统计图,下图是具体配置。



统计图类型选择堆积柱形图,分类轴定义等于A2,即以TITLENAME(职称)分类;系列名称等于B2,是学历名称;系列值等于C2,为不同职称下各学历的职员数。

下图为图形特性配置页面。



将统计图表题定为”公司员工数堆积柱形图”,将横轴标题定为”员工职称”,将纵轴标题定为”员工数”。

为报表添加一个参数模板命名为:堆积柱形图_arg.raq,为该模板添加一个数据集ds1,sql语句为:SELECT TITLE.TITLENAME FROM TITLE,然后在C2单元格中设置编辑风格为下拉数据集,并勾选”允许多选”,变量名设为base,如下图所示。



在堆积柱形图.raq报表中添加一个参数,参数名为base,参数类型为字符串组。修改数据集,在数据集添加查询过滤条件的sql语句,结果为:SELECT EMPLOYEE.EMPID,DEGREE.NAME,TITLE.TITLENAME FROM EMPLOYEE,DEGREE,TITLE WHERE TITLE.ID = EMPLOYEE.TITLE and EMPLOYEE.DEGREE = DEGREE.ID and TITLE.TITLENAME in (?),在数据集中添加一个参数,参数名称为base,参数类型同样为字符串组。

此时报表的预览效果如下图。



下图为分类轴选择了两个分类的预览图。



由上面两预览图对比可以看出,第二个图分类变少后,图形明显变粗了。

下面对报表模板做一些修改,使统计图图形效果一致。

修改报表如下图:A1B1C1单元格为报表表头,A2B2单元格为报表数据的分组函数,C2单元格使用count函数对数据进行统计,A4单元格为统计图,在第四行后添加一行空白行,在A5单元格加入=count(A2{})的表达式, 这里A5就计算出了需要展现的分类数。选中ABC三列,在列属性->宽度的表达式中加入A5*10+20。这里的表达式需要自行调试,因为根据数据的不同需要的列宽也不一样,需要用户自行设置。



预览修改完成后的效果图,下图为选择两个分类后的预览图。



可见图形宽度与全部数据时图形宽度是一致的。

这样就可以实现根据数列的多少来动态增减列宽,从而达到统计图图形的一致与美观的效果。此方法同样适用于横向的统计图,如堆积条形图等。只需把列宽的设定改成对行高的设定即可。
引自:润乾报表知识库
原文链接:利用单元格属性动态控制统计图的宽度
相关文章:利用单选按钮切换显示统计图和报表;统计图配色方案;互动性强的Flash统计图

其他相关内容: 润乾 ; 商业智能BI联盟 报表软件Java报表商业智能解决方案web报表的扩展功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息