利用单元格属性动态控制统计图的宽度
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报表的扩展功能
思路分析:统计图的图形宽度是根据单元格宽窄和数据多少进行改变的,数据量的多少不能硬性规定,所以需要设置单元格宽窄来解决问题。
首先设计如下图所示的报表模板,保存为堆积柱形图.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报表的扩展功能
相关文章推荐
- DevExpress.XtraReports:创建动态报表之单元格宽度控制问题
- 利用jQuery动态控制HTML的元素属性
- iPhone开发之UIScrollView滚动组件的使用(二) 拖线实现按钮控制大图移动利用contentOffset属性
- 如何利用反射动态设定类的属性和字段
- 利用文件属性结合Session实现在线人数统计
- 利用反射动态创建控件,且修改其属性
- 统计利用先序遍历创建的二叉树的宽度
- 利用__define_setter__和 __define_getter__ 定义动态的对象属性
- 创建动态DEEP STRUCTURE实现控制单元格可编辑,单元格颜色,行颜色
- js 动态控制 input 框 的只读属性
- 利用jQuery来动态添加属性 jQuery.ajax $.post $.load 序列化表单
- Asp.Net利用Ajax实现Fullcalendar动态获取更新events并修改日程单元格背景颜色
- 如何在SpringMVC框架中利用Java反射机制和Javassist实现Java对象、属性、注解的动态创建生成
- 利用NPOI开源的读写Excel、WORD等微软OLE2组件读写execl,控制样式或单元格
- 笔记:利用 runtime 交换方法、给分类动态添加属性
- 利用js控制全站出站链接,强制出站链接转跳统计访客出站数据
- 利用jquery控制display属性变化
- 超过单元格长度的文本用省略号表示,利用title属性实现鼠标移上去会显示全文,但有时候只看到一部分
- android 动态添加控件控制属性问题
- 利用jQuery来动态为属性添加或者删除属性