Birt Chart 自适应 大小尺寸

时间:2021-10-10 04:46:45

使用birt chart 制作图表,遇到了一个问题:

    chart 设置了固定的长宽尺寸之后,图表呈现的时候经常出现过粗、或者过密的问题。严重影响了图表的呈现,如果能根据数据的多少,动态调整图表的长宽尺寸就好了。

例如 barNum = 5;

则 设置 chart.width = 50*barNum;

 

内容:

一:简介图表的制作

二:设置图表尺寸自适应

 

一:图表的制作

      与正常birt 报表制作步骤相同,详细步骤在此不多说,参看:birt中文参考手册.chm

      1:新建模板文件 chartResizingTest.rptdesign,配置数据源 ClassicModels

      2:建立测试数据集,统计用户ID、用户名、订单数量。传入两个参数maxID、minID限定用户ID范围。

                       

       3:插入统计表格,并插入柱状图。

 

       做完之后,报表模板的大概样子如下图figure1

Birt Chart 自适应 大小尺寸

 

 

    但是这样的图表有一个明显的缺陷,chart 的长宽是固定的,不能适应数据量的变化,导致生成的图无法看。例如你设置了Width: 300points; Height: 200points; 当数据量很少的时候,柱图很粗(难看);当数据量很多时,柱图很密(没法看)。

    如果能根据数据量得多少,动态调整chart 图的大小就很很好的解决上述问题。幸运的是BIRT 提供的支持还是很强大的,提供JS、Java的接口进行动态设置。详见下文

 

二、动态调整图表尺寸

    通过JavaScript 重写chart onRender 事件,根据查询数据量,动态调整chart 尺寸大小。

   

    1://获取chart 绑定数据集的数据量,传入变量var barcnt;

     

    //"mybar"为chart 数据区 自定义的名字

 

    2:获取变量barcnt 的值,重写设置chart 尺寸

   

   

    OK,搞定了,根据chart绑定数据集数据量的大小,动态设置chart 的宽度 50*barcnt; 完整birt 模板见 “Birt chart 动态尺寸”

 

 

参考资料:

    1:birt 中文参考手册.chm --birt 基础教程 http://download.csdn.net/source/3318430

    2:Birt chart 动态尺寸 模板源文件:http://download.csdn.net/source/3392797

    3:Birt chart width eclipse 论坛帖子: http://www.eclipse.org/forums/index.php/m/367583/#msg_367583