1. 概述
1.1 问题描述
图表的分类数量越多,图表越宽,效果如下图所示:
1.2 实现思路
利用单元格扩展属性实现图表宽度动态变化效果。
2. 示例
2.1 设计模板
1)创建数据集查询 ds1,SQL 查询语句如下:
SELECT * FROM 销量 where 1=1
${if(len(销售员)=0,""," and 销售员 in ('"+销售员+"')")}
2)选中 B1单元格,填入公式 range(if(len($销售员) = 0, 9, len(split($销售员, "','")))) ,并设置横向扩展,然后将第一行隐藏。
公式解析:当销售员参数为空时,设置一个固定扩展数量 9,当参数不为空时,根据参数的数量来扩展。
3)合并 A2 至 B11 单元格,插入一个柱形图,将图表的上父格设置为无,如下图所示:
4)参数面板添加一个销售员参数对应的下拉复选框控件,返回值类型为字符串,分隔符为',',数据字典设置如下图所示:
2.2 效果预览
保存报表,点击分页预览,选择不同数量的分类,图表宽度随之改变,效果如下图所示:
注:不支持移动端,移动端图表宽度是固定的。
3. 模板下载
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Chart\图表根据分类数量调整宽度.cpt
点击下载模板:图表根据分类数量调整宽度.cpt