1.建立一个报表项目pl_report ,而后建立一个报表report_1.rptdesign。并为其建立一个jdbc数据源 java
本例是使用sqlServer数据库,且链接驱动是使用jtds-1.3.1.jar。因此这里要加入jtds-1.3.1.jar包如: sql
记住最后将设计好的报表复制到 birt_runtime项目下时也要把jtds-1.3.1.jar加入项目中。设置好参数后就完成了数据源的建立了。 数据库
下面咱们要为该数据源写脚本,让其从配置文件中读取链接参数。 sqlserver
1.在项目下建立jdbc链接配置文件:mssql_connect.properties。文件内容以下: this
database.driver=net.sourceforge.jtds.jdbc.Driver database.host=192.168.4.30 database.prot=3433 database.userName=test database.password=test123 database.url=jdbc:jtds:sqlserver://192.168.4.30:3433/AqSc
2.选中刚才建立的数据源而后在设计界面中选择“脚本”选项目卡 url
咱们将在beforeOpen面板中编写脚本,脚本内容以下: spa
importPackage(Packages.java.io); importPackage(Packages.java.util); fis = new FileInputStream("E:/WorkSpace/BirtReport/pl_report/mssql_connect.properties"); if(fis!=null){ props = new Properties(); props.load(fis); } this.setExtensionProperty('odaURL',props.getProperty("database.url")); this.setExtensionProperty('odaDriverClass',props.getProperty("database.driver")); this.setExtensionProperty('odaUser',props.getProperty("database.userName")); this.setExtensionProperty('odaPassword',props.getProperty("database.password")); if(fis!=null) fis.close();这样当 report_1.rptdesign报表打开数据源时将执行这段代码,并完成链接参数的设置。能够看到脚本中配置文件的读取地址仍是写死的,这样与不读取配置文件没什么两样。
下面咱们将代码改进下: .net
importPackage(Packages.java.io); importPackage(Packages.java.util); importPackage(Packages.java.net); importPackage(Packages.javax.servlet.http); req = reportContext.getHttpServletRequest(); url = req.getSession().getServletContext().getResource("/pl_report/mssql_connect.properties"); props = new Properties(); props.load(url.openStream()); this.setExtensionProperty('odaURL',props.getProperty("database.url")); this.setExtensionProperty('odaDriverClass',props.getProperty("database.driver")); this.setExtensionProperty('odaUser',props.getProperty("database.userName")); this.setExtensionProperty('odaPassword',props.getProperty("database.password"));
而后将pl_report直接复制到birt runtime下便可
最后运行该报表便可如: 设计
http://localhost:8080/birt/frameset?__report=pl_report/report_1.rptdesign code