站内搜索

返回   安讯中国 > 安讯产品 > 百灵报表(BIRT)
注册
忘记密码?
论坛帮助 日历事件 搜索 今日新帖 标记版面已读

回复
 
LinkBack 主题工具 搜索本主题 显示模式
  #1 (permalink)  
旧 2008-7-21, 04:42 PM
Junior Member
 
注册日期: 2008-6-20
帖子: 25
存款: 183
默认 关于报表legend的使用

效果如下图,现在我想修改右边的legend显示的值,比如改成:“销售时间08-1-21”。应该怎么修改呢?其实我就是想对这些值进行某种编辑。现在我的X轴的值是如下设置的:
DateTimeDataSet categoryValues = DateTimeDataSetImpl.create( new Calendar[]{
new CDateTime( 2008, 1, 21 ),
new CDateTime( 2008, 1, 20 ),
new CDateTime( 2008, 1, 17 ),
new CDateTime( 2008, 1, 16 ),
new CDateTime( 2008, 3, 15 )
} );
另外该图默认的情况下,legend显示在图的右方,如果我想把它放到图的下方或左方的话,怎么修改。Legend lg = cwaBar.getLegend( );是不是通过对lg进行某种设置。谢谢!!!
上传的图像
文件类型: jpg legend.JPG (80.9 KB, 9 次查看)
回复时引用此帖
  #2 (permalink)  
旧 2008-7-21, 05:25 PM
Junior Member
 
注册日期: 2008-6-16
帖子: 9
存款: 155
默认

Legend里不是有Position属性吗, 可以设置位置.
修改legend item的值, 可以在beforeDrawLegendItem( lerh, bounds, icsc )方法中加入处理.
下面是简单的例子, 自己也可以加入更为复杂处理.
function beforeDrawLegendItem( lerh, bounds, icsc )
{
lerh.getLabel().getCaption().setValue( "销售时间" + lerh.getLabel().getCaption().getValue() );
}
回复时引用此帖
  #3 (permalink)  
旧 2008-7-21, 05:36 PM
Junior Member
 
注册日期: 2008-6-20
帖子: 25
存款: 183
默认

谢谢。
Legend lg = cwaBar.getLegend( );
lg.setPosition( Position.ABOVE_LITERAL );
用这个方法可以设置。
不过显示的效果不好看,不知道怎么样让横着显示,而不是竖着显示????
呵呵效果如下
上传的图像
文件类型: jpg legnd_above.JPG (78.7 KB, 7 次查看)
回复时引用此帖
  #4 (permalink)  
旧 2008-7-22, 09:57 AM
Moderator
 
注册日期: 2008-5-30
帖子: 79
存款: 865
默认

可以设置legend的Orientation,例如:
lg.setOrientation(Orientation.HORIZONTAL_LITERAL)
回复时引用此帖
  #5 (permalink)  
旧 2008-7-22, 02:18 PM
Junior Member
 
注册日期: 2008-6-20
帖子: 25
存款: 183
默认

嗯。谢谢,的确可以使了。现在我发现BIRT的API太多了。想问下,哪里有BIRT的API的详细使用说明呢。如果我不问高手的话,估计我一辈子都不知道要用这个方法。
回复时引用此帖
  #6 (permalink)  
旧 2008-7-22, 05:04 PM
Moderator
 
注册日期: 2008-5-30
帖子: 79
存款: 865
默认

你可以从CVS上直接checkout 源代码来看。repository的配置参见附件图,密码为anonymous。chart的代码主要在org.eclipse.birt.chart.engine和org.eclipse.birt.chart.engine.extension两个project中。
上传的图像
文件类型: jpg repository.jpg (47.2 KB, 8 次查看)
回复时引用此帖
  #7 (permalink)  
旧 2008-7-23, 10:18 AM
Junior Member
 
注册日期: 2008-6-20
帖子: 25
存款: 183
默认

嗯。谢谢我下了源码。
回复时引用此帖
  #8 (permalink)  
旧 2008-7-23, 11:22 AM
Junior Member
 
注册日期: 2008-6-20
帖子: 25
存款: 183
默认

现在我想修改右边的legend显示的值,想拼一个数据结果集显示在legend上面,应该怎么做呢?比如:
08-1-21+A,08-1-23+B ,08-1-21+C
其中A,B,C分别是我从库里取出来的值。由于我要显示时间,所以X轴的结果集是:
DateTimeDataSet categoryValues = DateTimeDataSetImpl.create( new Calendar[]{
new CDateTime( 2008, 1, 21 ),
new CDateTime( 2008, 1, 20 ),
new CDateTime( 2008, 1, 17 ),
new CDateTime( 2008, 1, 16 ),
new CDateTime( 2008, 3, 15 )
} );
但是我想拼如上的结果集,那么它的类型必定是String类型的。想问下,当我的X轴是时间类型的时候,但又想自己拼出一个legend的显示时,应该如何操作。谢谢:)
回复时引用此帖
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

论坛启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用


服务条款 | 隐私政策
安讯中国 上海浦东新区浦东南路1271号华融大厦21层2101室
电话:(+86)21-58826388   发送邮件联系我们  沪ICP备06010344号
Actuate Corporation © 2008
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios

Content Relevant URLs by vBSEO 3.1.0