在BIRT的图表中,提示(tooltip)是一个复杂对象,是不能被格式化的,而只有数字或是日期对象才可能被格式化.
但如果在一个X轴是区域,Y轴是销售额的图表中,用户希望每个数据点(data point,我们这里是饼图,那数据点就是一个切片)有如下提示:"XX的销售额占全国XX%",该怎么做呢?
我们这里可以借助一些间接的方法和脚本来获得支持.
思路是这样的: 图表中的提示可以选择默认值或是输入值.默认值就是什么也不输,提示会和数据点的显示一样;输入的表达式则会被解析执行得到当前值.这里我们选用默认值.
然后格式化数据点.BIRT对数据点的格式化功能支持很多,我们可以充分利用它来间接格式化提示.
这样提示和数据点都会一样显示出"XX的销售额占全国XX%".通常数据点标签显示的区域不够大,所以我们这里选择关闭数据点标签,最后预览得到如下结果
这样提示就完成了格式化.但如果用户不要空白的数据点,还希望里面有标签,比如就想显示当前区域所占比例,这该怎么办呢?
由于数据点的标签在设计时(design time)已经有了对应的值,并被显示在了提示里,我们只能在运行时(runtime)去修改它,这就需要用的BIRT中的脚本功能.
如果不会用脚本,这里可以简单提一下
第一步切换到Script页面,第二步双击要写脚本的对象,这里是NewChart,然后选中方法名,我们这里改的是数据点标签,那么选择beforeDrawDataPointLabel,会自动在编辑器里生成一个空方法.这样我们在方法里输入具体的业务逻辑.如果你对BIRT里API不熟悉,这并不要紧,会有代码帮助(code assistance)支持.
这样我们就在运行时修改了数据点标签的值,使得它显示销售额所占的比例.最后再预览一下,是不是期望的结果呢?
关于BIRT图表的功能,还有很多.它是个开源项目,已经被运用在很多免费或是商业的软件产品里.如果自己想应用,并获得足够的技术支持,不妨去http://www.actuatechina.com/看看.