随笔 - 59, 文章 - 4, 评论 - 184, 引用 - 7
数据加载中……

[BIRT]-印象

BIRT作为Eclipse的BI和Report工具,由业界领先的公司Actuate公司开发,总体印象来说,在java报表方面已经很强了,当然比起一些商业工具还是有差距的,最近在一个BOSS系统上看到的报表so强,据说那工具70W一套,比起Actuate公司的商用BIRT贵了不知道多少倍,不过感觉还是满不错的。
java在报表方面要想达到PB那样简单易用还是比较难,对于BIRT来说,首先是高级查询报表的实现,必须依靠ScriptedDataSource和ScriptedDataSet,而BIRT在这个事情上则只起到了一个界面生成的工具的作用,为了生成Excel的报表,则必须自己制作一个report engine嵌入到BIRT的framework中去,另外让我不解的一个问题是BIRT竟然将插入到报表中的图片以二进制源文件的形式存储在XML格式的.rptdesign文件中,而web报表的参数传递全部采用http的get方式,why not post??
总之在BIRT中制作初级报表以及固定查询条件组合的报表还是比较方便的,几乎都是自动生成了,还算比较合用,虽然有时候会有点Bug,而且速度也不快。但是在高级条件组合查询方面还稍显不足,只有自己写数据库访问类来解决这个问题,不过有这样的开源工具用,也算是很幸福了^_^

posted @ 2005-08-22 23:31 fisher 阅读(1719) | 评论 (2)编辑 收藏

[BIRT]-使用Java对象自定义数据源和数据集

l         使用DataSet的‘open’方法来执行初始化任务:右击DataSet选择‘编辑代码’,然后在其中选择‘open’方法,这里初始化一个java对象来完成数据访问功能

l         Open方法

a)         script中引用的包含java对象的class文件的jar文件,必须包含在<ECLIPSE_INSTALL>\plugins\org.eclipse.birt.report.viewer\birt\WEB-INF\lib.目录下

b)        引入一个packageimportPackage(Packages.com.yourCompany.yourApplication); 引入通常在open方法的第一行。

c)        创建一个java对象的实例:var myList = MyListFactory.getList();

d)        java对象中获取数据的典型方式是从该对象中获得一个包含数据的Iterator
var iterator = myList.getIterator();

l         Fatch方法(fatch方法从Open中创建的java实例中获得数据,并赋值给行)

a)         Fatch方法的第一步是判断Iterator中是否有数据:
if(iterator.hasNext() == false ){
  return null;
}

b)        然后是从iterator中得到一个行对象node以便得到该行中每列的数据:
var node = iterator.next( );
row[1] = node.getFirstCol( );
row[2] = node.getSecondCol( );
row[3] = node.getThirdCol( );

c)        最后,是返回truereturn true;

l         Close方法:

a)         最后,在Close方法中清理所有创建的对象:
myList = null;
iterator = null;
node = null;

posted @ 2005-08-22 23:20 fisher 阅读(3408) | 评论 (2)编辑 收藏

[BIRT]-创建一个report engine

l         每个应用只需创建一个ReportEngine的实例

l         ReportEngine的构造函数要传入一个EngineConfig作为参数,如果参数为null,则一个默认值的ReportEngine被创建。

l         退出时,应用应该调用destroy()来卸载外挂以及删除临时文件

l         使用report engine有以下几个主要步骤:

a)         创建一个EngineConfig来设置report engine的选项

b)        创建一个ReportEngine类的实例

c)        你可以用这个对象去进行多种任务

d)        使用ReportEngine的一个openReport( )方法来打开一个report design文件

e)         使用IgetParameterDefinitionTask来获得report参数的信息

f)         使用IrunAndRenderReportTask运行并转换一个report到一个输出格式

g)        调用你的report enginedestroy( )方法

l         EngineConfigThe EngineConfig class wraps configuration settings for a report engine. It allows a developer to specify where to look for engine plug-ins and data drivers, and to add an application-wide scriptable object.

l         IReportRunnable:为了使用report engine,你必须首先调用openDesign( )方法来打开report设计文件,这些方法返回一个IreportRunnable实例来代表report设计文件的engine’s view。使用IreportRunnable做以下任务:

a)         Get parameter data

b)        Get report title

c)        Get report author.

d)        Get images embedded within the report design

e)         Run the report

l         IEngineTask:该类提供一个管理脚本上下文以及report locales的框架,它从ReportEngine的工厂方法中创建,需要参数:IreportRunnable对象、a scripting context, and a locale

posted @ 2005-08-22 23:19 fisher 阅读(921) | 评论 (0)编辑 收藏

[BIRT]-理解report engine API

l         应用开发者只需要了解公用的API,这些API包含在以下的几个包内:

a)         org.eclipse.birt.report.model.api:这个包内包含了93class,两个接口和一个exception,这个包是为那些想要定制report designer的开发者使用的

b)        org.eclipse.birt.report.engine.api这个包包含了一个类,17个接口和四个exception,是给那些想要定制一个report generator的开发者使用的

c)        org.eclipse.birt.chart hierarchy:这个包是给想定制一个chart generator的开发者使用的

l         BIRT report engine在几个环境提供了报表生成和翻译服务,包含以下组件:

a)         Stand-alone engine:这个engine可以让开发者使用一个命令行程序来从一个report design文件(.rptdesign)中得到HtmlPDF格式的report

b)        BIRT report viewerBIRT Report Designer使用它来预览report。这个程序是一个web程序,它运行在一个Eclipse内嵌的Tomcat中,这个Tomcat中有一个内嵌的report engine

c)        Custom report designer with an embedded engine:一个定制的桌面报表应用集成BIRT report engine来预览报表

d)        Web application that embeds the engine:一个类似于BIRT report viewerWeb程序,可以产生基于web的报表。

l         Report engine的核心engine运行并实施报表,而将其他的环境相关的任务留给运行该引擎的应用程序,比如:URL construction, image storage, and design file caching

l         BIRT report engineAPI可以做以下几件事情:

a)         发现一组为报表定义的参数

b)        获得参数的默认值

c)        运行报表产生HTMLPDF格式的输出

d)        为报表产生图片或chart

posted @ 2005-08-22 23:18 fisher 阅读(3177) | 评论 (4)编辑 收藏

[BIRT]-使用:过滤数据集

l         你可以使用以下几种技术来过滤数据集:

a)         在查询时指定过滤,以便在数据库或其他数据源中过滤数据,要尽量使用这种方式来过滤数据,可以通过两种方式来指定SQL SELECT声明:

1.         在设计期间的SQL Select中以WHERE的方式指定,并在数据库中执行。

2.         创建report参数来让用户指定,在SQL SELECTWHERE处使用参数来指定条件,使用这种方式,WHERE的参数在运行期指定,并在数据库中执行。

b)        BIRT Report Designer中过滤数据,使用javascript或者数据不是在一个数据库中从而不能执行SQL语句的情况下,可以用以下两种方式来执行这种过滤:

1.         编辑数据集来指定filter,使用这种技术,查询获得你的SELECT活动的全部数据,然后BIRT Report Designer过滤数据以便获得符合你指定的条件的数据,由于数据集只能有一个,所以这种技术只能使用一种table或者所有的report都显示相同的行

2.         编辑report element filter properties来指定要显示的行,使用这种技术,BIRT Report Designer处理这个过程,如果有多个tablelistchart使用同一个数据集,而且要显示不同的行,则就需要使用这种技术

posted @ 2005-08-22 23:17 fisher 阅读(1416) | 评论 (0)编辑 收藏

仅列出标题
共12页: First 上一页 4 5 6 7 8 9 10 11 12 下一页