Eclipse中装配Birt插件及基础教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Eclipse中装配Birt插件及基础教程
网友分享于:2015-08-22 浏览:0次
网站:/eclipse/1997097.html
Eclipse中安装Birt插件及基础教程
这些天由于公司项目的需要,需要生产报表,我们公司使用的是cs客户端模式,主要运用的是J Frame来做的客户端,现在需要做报表,所以需要在客户端里面嵌套一个浏览器,然后使用Birt 来制作报表,所以才有如下文章,本来以为这个安装Birt插件是一件很easy的事情,然而没想到的是,百度了很久,都没有link安装的具体方法,要么就是插件包找不到(官网没有找到,可能是我英语不好,没看到),要么就是安装了没有效果,当然了,eclipse官网已经有了集成过B irt插件的IDE,但是我这人偏偏较真,就不想用他们已经集成好的,我就要自己按照link的模式来安装插件(对,没错,我就是那传说中的一根筋。
),下面具体介绍下集成的步骤:第一步:去官网下载集成好的All-in-One那个包,地址如下Birt下载地址,下载后的包是:eclips e-reporting-mars-R-win32-x86_64.zip,解压之后里面是eclipse的文件目录,我们只用将其中的plugins和features提取出来,制作Birt的link插件即可,至于link安装方法其实很简单,这样做的好处是,方便我们调用插件,就算以后我们重装eclipse,只需要重新写个.link的配置文件就可以了,就不需要再重新下载插件,重新安装。
(以下安装方法以本人电脑为例)
首先在eclipse软件的所在文件夹所在磁盘下新建BIRT文件夹,在BIRT文件夹下新建一个名为eclipse的文件夹,用来存放Birt的插件,将eclipse-reporting-mars-R-win32-x86_64.zip中解压的plugins和features两个文件夹复制到/BIRT/eclipse文件夹中;
注意:下图中两个文件夹的相对位置要正确
然后,进行eclipse的配置工作,在eclipse的安装目录文件夹eclipse中新建一个文件夹命名为l inks,
在links文件夹中配置一个birt.link的文件,如下:
最后重启eclipse就可以了,如果新建-》others,能看到以下页面就说明安装成功:
以上是第一步,集成birt插件,接下来就是制作报表
第二步:制作报表:
首先在Package explore页面
1. 新建一个报表工程,
点击file选择new然后选择other,出现下面的对话框,选择report project,点击next,输入工程名,finish即可
创建完report project 接下来就是创建report,新建一个report:
这样就能得到一个空的报表,2. 接下来设计报表:
(1)、配置数据源,palette是设计前台界面的样式,Dataexplorer是配置数据源,结果集等的
右击data source新建一个数据源,选择JDBC DATA SOURCE,点击next
这样数据源就创建成功了,
(2)、接下来完成数据集的配置,右击DaTaSets新建一个结果集
如果连接数据库的URL上写过了数据库名,那些sql的时候就不需要写数据库名了。
点击finish完成,出现输出列窗口,可以点击Preview Results显示查询出来的结果集。
若数据源的驱动类版本不匹配,可能会导致一下错误:(mysql5.6版本的需要使用5.1.37驱动jar包)
org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.
at org.eclipse.birt.report.engine.api.impl.DatasetPreviewTask.doRun(DatasetPreviewTask.java:316)
at org.eclipse.birt.report.engine.api.impl.DatasetPreviewTask.runDataset(DatasetPreviewTask.java:278)
at org.eclipse.birt.report.engine.api.impl.DatasetPreviewTask.execute(DatasetPreviewTask.java:89)
at org.eclipse.birt.report.designer.data.ui.dataset.DataSetPreviewer.preview(DataSetPreviewer.java:68)
at org.eclipse.birt.report.designer.data.ui.dataset.ResultSetPreviewPage$5.run(ResultSetPreviewPage.java:372) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
Caused by: org.eclipse.birt.data.engine.odaconsumer.OdaDataException: Cannot get the result set meta data.
org.eclipse.birt.report.data.oda.jdbc.JDBCException: SQL statement does not return a ResultSet object.
SQL error #1:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server ve rsion for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=500' at line 1
;
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIM IT=500' at line 1
at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.newException(ExceptionHandler.java:52)
at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.throwException(ExceptionHandler.java:108)
at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.throwException(ExceptionHandler.java:84)
at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getRuntimeMetaData(PreparedStatement.java:414) at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getProjectedColumns(PreparedStatement.java:377) at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.doGetMetaData(PreparedStatement.java:347) at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.execute(PreparedStatement.java:563)
at org.eclipse.birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:980)
at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQu ery.java:607)
at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1251)
at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:233)
at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:178)
at org.eclipse.birt.data.engine.impl.QueryResults.getResultMetaData(QueryResults.java:132)
at org.eclipse.birt.report.engine.api.impl.DatasetPreviewTask.extractQuery(DatasetPreviewTask.java:350)
at org.eclipse.birt.report.engine.api.impl.DatasetPreviewTask.doRun(DatasetPreviewTask.java:307)
... 5 more
Caused by: org.eclipse.birt.report.data.oda.jdbc.JDBCException: SQL statement does not return a Resul tSet object.
SQL error #1:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server v ersion for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=500' at line 1
;
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIM IT=500' at line 1
at org.eclipse.birt.report.data.oda.jdbc.Statement.executeQuery(Statement.java:482)
at org.eclipse.birt.report.data.oda.jdbc.Statement.getMetaUsingDefaultPolicy(Statement.java:389)
at org.eclipse.birt.report.data.oda.jdbc.Statement.getMetaData(Statement.java:330)
at org.eclipse.birt.report.data.oda.jdbc.bidi.BidiStatement.getMetaData(BidiStatement.java:56)
at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.doGetMetaData(OdaQuery.java:423)
at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.getMetaData(OdaQuery.java:390)
at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getRuntimeMetaData(PreparedStatement.java:407) ... 16 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your S QL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=500' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at ng.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2619)
at com.mysql.jdbc.StatementImpl.executeSimpleNonQuery(StatementImpl.java:1606)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2268)
at org.eclipse.birt.report.data.oda.jdbc.Statement.executeQuery(Statement.java:478)
... 22 more
若结果集正常则配置完成,可以进行前台界面的设计了。
(3)(点击palette ,点击report items ,找table直接拖拽到右边窗口,点击date explorer,点击data sets,可将字段拖拽到表中)双击table将查询出来的结果集,根据查询出来的结果集选择需要的行列数。
将结果集的列名填入表的data det ail一行中。
(记住,在插入表格的时候,DATA Set一定要选择自己配置的数据集。
)
在表格的头一行,每一个里面添加lable标签填入查询出来的名称标注,第二行添加data标签,点击进去后在Expression这里点击fx,填入进去结果集:我的结果集如下:
最后完成,保存后,通过地址访问报表运行报表的按钮:
结果如下:
最后的最后:就是总结了,以上就是简单的报表制作以及birt集成教程,更深入的教程,慢慢研究去吧,千里之行,始于脚下,生活在于不断奋斗。
PS:今天是情人节(七夕),在此祝愿所有的有情人终成眷属,单身的快速脱单,祝大家节日快乐,笨驴,节日快乐!
版权声明:本文为博主原创文章,未经博主允许不得转载。