在iReport 5.7.0中创建具有不同数据源的子报表

时间:2014-08-19 13:42:38

标签: jasper-reports datasource subreport

我正在使用 iReport 5.7.0
我的任务是生成一个包含多个数据源的报告:XML数据源和数据库。 所以我创建了一个使用数据库连接的子报表 我做了以下步骤:
1)定义XML数据源
2)创建使用此数据源的报告
3)使用defaultesxpression创建一个名为“connection”的参数:

     java.sql.DriverManager.getConnection("jdbc:oracle:thin:@192.168.10.239:1521:DBNAME", "DBUSER", "DBPW")

参数类:java.sql.Connection

3)使用连接表达式创建子报表:$P{connection} 但是我收到了以下错误

填写打印时出错...评估表达式时出错:源文本:java.sql.DriverManager.getConnection(“jdbc:oracle:thin:@ 192.168.10.239:1521:DBNAME”,“DBUSER”,“DBPW”) net.sf.jasperreports.engine.fill.JRExpressionEvalException:计算表达式时出错:源文本:java.sql.DriverManager.getConnection(“jdbc:oracle:thin:@ 192.168.10.239:1521:DBNAME”,“DBUSER”,“DBPW “)net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:263)at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:611)at net.sf.jasperreports .engine.fill.JRCalculator.evaluate(JRCalculator.java:579)在net.sf.jasperreports.engine.fill.JRFillDataset.setFillParameterValues(JRFillDataset.java:996)在net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues (JRFillDataset.java:637)net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1313)at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:931)at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:873)at net.s f.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:87)at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:287)at net.sf.jasperreports.engine.JasperFillManager.fillReport( JasperFillManager.java:760)位于org.openide的org.openide.util.RequestProcessor $ Task.run(RequestProcessor.java:572)的com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:891) .util.RequestProcessor $ Processor.run(RequestProcessor.java:997)引起:java.sql.SQLException:没有为jdbc找到合适的驱动程序:oracle:thin:@ 192.168.10.239:1521:java.sql.DriverManager上的DBNAME。的getConnection(DriverManager.java:596)在java.sql.DriverManager.getConnection(DriverManager.java:215)在report4_1407933336571_300812.evaluate(report4_1407933336571_300812:236)在net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java :250)......还有13个 打印未填写。尝试使用EmptyDataSource ...

请帮忙吗?

1 个答案:

答案 0 :(得分:0)

我使用iReport-5.1.0。 复制你的sql连接器,例如:mysql-connector-java-5.0.4-bin.jar

  

C:\ Program Files(x86)\ Jaspersoft \ iReport-5.1.0 \ platform9 \ lib

restart your iReport,再次运行您的报告。