ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Birt总结

Birt总结

原创 Linux操作系统 作者:grazier 时间:2009-02-13 17:02:22 2 删除 编辑
遗留问题:
1)birt引入js脚本文件
一、基本知识
1、关于数据源和数据集:

BIRT 报表使用一个数据源连接到数据库或其它数据提供者。 BIRT 使用一个数据集从数据提供者处的检索数据。 可以将数据源理解为连接, 数据集作为query。 

2、ODA:

BIRT提供ODA(Open  Data  Access)框架来支持自定义数据访问方法。数据访问的范围还包括一个获取数据的运行时组件。也包括构建自定义查询的自定义设计时UI。例如,打包后的应用程序可以让ODA构建数据访问UI并运行在自己的数据模型中。

3、输出文件格式

html、xls、ppt、doc、pdf、Postscript

二、Birt优势

1、有一个强大的RCP平台,RCP:Rich Client Platform. 有Eclipse支持

三、报表设计

1、报表需求内容

1)报表的目的是什么;

2)谁将使用(浏览)这个报表;

3)报表将包含哪些信息?这些信息来源于哪?

4)哪些数据需要被计算?

5)需要计算数据的算法是什么?

6)是否需要由报表使用者确定哪些数据被显示?

2、确认报表如何被浏览

1)在线浏览或者打印报表哪种更重要?

2)报表将以html、pdf或者其它支持的文件格式被浏览?

3)如果以html格式显示报表,需要支持哪些浏览器?

3、考虑报表的国际化需求

4、确认报表的布局和格式

1)报表数据的整体布局是什么?所有数据都显示在一个区域块中,或者根据需要显示在多个区域块中?

2)数据是否需要分组?需要分组的如何做?

3)数据是否需要排序?是否需要动态排序?

4)数据是否需要汇总?如何需要如何汇总?

5)在一定条件下高亮显示信息。

6)在页眉和页脚是否需要显示信息;

7)公司或者客户公司是否有标准需要遵守;

8)是否有可重用的样式模板;

9)是否有可重用的报表模板;

5、画报表的基本模型

6、考虑报表有哪些可重用的组件(业务的,如两个部门需要的报表信息基本相同,只有个别信息不同,这时相同的部分就可以重用)。

7、管理报表的设计资源:客户提供的样本数据、图等

8、确认报表如何被布署

四、二次开发

1、样式

1)修改静态文本背景色

LabelHandle headerLabel =
( LabelHandle ) design.findElement( "Header Label" );
try {
// To prepare to change a style. property, get a StyleHandle.
StyleHandle labelStyle. = headerLabel.getPrivateStyle();
// Update the background color.
ColorHandle bgColor = labelStyle.getBackgroundColor();
bgColor.setRGB( 0xFF8888 );
} catch ( Exception e ) {
// Handle the exception
}

2)修改静态文本对齐方式
 labelStyle. .setTextAlign("center");

2、驱动加载

1)将所需驱动复制到runtime_home/plugins\org.eclipse.birt.report.data.oda.jdbc_2.3.1.v20080827\drivers目录下,详见readme.txt

2)

IReportRunnable design = birtReportEngine.openReportDesign(sc
                    .getRealPath("/Reports")
                    + "/" + reportName);
            ReportDesignHandle report = (ReportDesignHandle) design
                    .getDesignHandle();

ElementFactory designFactory = report .getElementFactory();

OdaDataSourceHandle dsHandle = designFactory.newOdaDataSource(
                "Data Source", "org.eclipse.birt.report.data.oda.jdbc");
        dsHandle.setProperty("odaDriverClass", "com.mysql.jdbc.Driver");
        dsHandle.setProperty("odaURL", "jdbc:mysql://localhost:3306/birt");
        dsHandle.setProperty("odaUser", "root");
        dsHandle.setProperty("odaPassword", "root");
        designHandle.getDataSources().add(dsHandle);

3)注意:自定义sql时如果多表情况下,指定的字段如果带字段别名,在手工建立table时需要将别名去掉,如od.name改为name,sum(quantity) quantity改为quantity

3、表或网格布局与类的对应

表                     --->行                    --->单元格

TableHandle  --->RowHandle  --->CellHandle

注意,handle类的实例只是获取一个句柄,对于表layout的操作需要获取相对应的类实例。

4、参数

1)API获取参数值

ReportDesignHandle designHandle = null;

....

ScalarParameterHandle parameterHandle = ( ScalarParameterHandle )designHandle.findParameter("determineNull");
             System.out.println("默认值为空值===========" + parameterHandle.getDefaultValue());

5、脚本

1)获取参数时写法

var beginDte = params["beginDte"].value;

注意:红色的.value,一定要有,如果没有是params["beginDte"]形式时,并且此参数的默认值是null,那么beginDte的值不为null,即beginDte==null为false;只有加上.value时,当为默认值时,beginDte的值才为null,即beginDte==null为true。

kao!浪费我3个小时啊!--教训,还得看官方文档,网友的文档还是不严谨!

表达式:

如果数据类型设置为字符串,那么赋值时也应是字符,0及数字最明显,应是"0"

例:

amtRadio = row["AMTRADIO"];
if(amtRadio == "-"){
    amtRadio = "0";//如果amtRadio=0则有时报错,此种写法,做了5个有1个报错,不严谨啊。
}


6、在用API开发动态报表时,oracle字段必须大写

在访问oracle数据库时,如果组成的sql语句字段名字小写,那么在生成的.rptdesign文件中,数据集的字段被改为大写,导致行数据不能绑定。从目前看字段名字必须是大写的。mysql5中不会出现此情况。

7、数据源

1)jdbc数据源

配置详细驱动信息后,如果同时配置jndi,那么在运行环境时,如果jndi可用,则优先使用jndi.注意:tomcat与weblogic的jndi写法是不同的,如jndi名字为:lic,那么weblogic则为lic,而tomcat为:java:comp/env/lic

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/118838/viewspace-551854/,如需转载,请注明出处,否则将追究法律责任。

上一篇: oracle dblink
下一篇: Birt集成与扩展
请登录后发表评论 登录
全部评论

注册时间:2008-10-20

  • 博文量
    53
  • 访问量
    221285