Jasperreport jrxml 对子报表传参数
2017-08-17 00:00
411 查看
Jasperreport jrxml 对子报表传参数
过程:
1. 子报表需要绝对路径
2. 对子报表传递路径参数
3. 网上很难找到jrxml的传参例子,官网也找不到,都是在图形界面设计的例子
4. 从蛛丝马迹猜到怎么写
http://bbs.csdn.net/topics/300193115/ 在程序里怎么给交叉报表
5. 结果总是报错:发现了以元素 'subreportParameter' 开头的无效内容。以为是XML标签写错
6. 又继续找到一个例子,并看回错误日志
http://www.iteye.com/problems/80489 Jasper sub report的记录数问题
7. 最后,才,发,现,这,个,坑,爹,问题
原来,参数标签必须要在<reportElement>之后才行,坑爹啊,居然还有顺序的。。。。
过程:
1. 子报表需要绝对路径
2. 对子报表传递路径参数
3. 网上很难找到jrxml的传参例子,官网也找不到,都是在图形界面设计的例子
4. 从蛛丝马迹猜到怎么写
http://bbs.csdn.net/topics/300193115/ 在程序里怎么给交叉报表
5. 结果总是报错:发现了以元素 'subreportParameter' 开头的无效内容。以为是XML标签写错
SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/strong/gzstrong/workspace/EclipseGWT/StrongPXXT/WebContent/WEB-INF/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/home/developer4/.m2/repository/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. [WARN ](17-08-17 16:47:54) Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) [WARN ](17-08-17 16:47:54) Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) [WARN ](17-08-17 16:47:54) Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) [WARN ](17-08-17 16:47:55) Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) [WARN ](17-08-17 16:47:55) Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) [WARN ](17-08-17 16:47:55) Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) [WARN ](17-08-17 16:47:55) Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) [WARN ](17-08-17 16:47:55) Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) [WARN ](17-08-17 16:47:55) Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) [WARN ](17-08-17 16:47:55) Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) [WARN ](17-08-17 16:47:55) Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) [WARN ](17-08-17 16:47:55) Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) [WARN ](17-08-17 16:47:56) Found two components for namespace http://jaspe 7fe0 rreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) [WARN ](17-08-17 16:47:56) Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) [WARN ](17-08-17 16:47:56) Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components net.sf.jasperreports.engine.component.ComponentsEnvironment.findBundles(ComponentsEnvironment.java:126) net.sf.jasperreports.engine.JRException: org.xml.sax.SAXParseException; lineNumber: 168; columnNumber: 39; cvc-complex-type.2.4.a: 发现了以元素 'subreportParameter' 开头的无效内容。应以 '{"http://jasperreports.sourceforge.net/jasperreports":reportElement}' 之一开头。 at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:247) at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:230) at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:218) at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:172) at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:156) at net.sf.jasperreports.engine.JasperCompileManager.compileToFile(JasperCompileManager.java:136) at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:427) at com.strong.server.module.tcj.controller.MCjController.doInitBaoBiao(MCjController.java:201) at com.strong.server.module.tcj.controller.MCjController.main(MCjController.java:213) Caused by: org.xml.sax.SAXParseException; lineNumber: 168; columnNumber: 39; cvc-complex-type.2.4.a: 发现了以元素 'subreportParameter' 开头的无效内容。应以 '{"http://jasperreports.sourceforge.net/jasperreports":reportElement}' 之一开头。 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:453) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3232) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1791) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:741) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2715) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568) at org.apache.commons.digester.Digester.parse(Digester.java:1745) at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:243) ... 8 more
6. 又继续找到一个例子,并看回错误日志
http://www.iteye.com/problems/80489 Jasper sub report的记录数问题
7. 最后,才,发,现,这,个,坑,爹,问题
原来,参数标签必须要在<reportElement>之后才行,坑爹啊,居然还有顺序的。。。。
<subreport> <reportElement uuid="5c982691-19bb-4b82-9353-cec4b96b4d2e" positionType="Float" x="21" y="70" width="720" height="20"/> <subreportParameter name="SOURCE_DIR"> <subreportParameterExpression><![CDATA[$P{SOURCE_DIR}]]></subreportParameterExpression> </subreportParameter> <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{gqkList})]]></dataSourceExpression> <subreportExpression><![CDATA[$P{SOURCE_DIR} + "cjtongjilist_3.jasper"]]></subreportExpression> </subreport>
相关文章推荐
- ireport jasperreport 主报表向子报表传递参数
- iReport-JasperReport报表开发:使用主Dataset的fields字段作为sub dataset的sql参数
- JasperReport报表参数9
- Java开发实用工具及组件应用(JFreeChart、PDF组件-iText、jasper report报表、Maven)
- JasperReport编译报表设计5
- JasperReport+iReport高级报表设计实战
- JasperReport报表导出踩坑实录
- iReport 和 Jasperreport整合开发web报表向导(2)
- jasperreport生成html,Excel,PDF报表,数据源使用List
- Springmvc与jasperreport结合生成报表的一种方法 4000
- 【清楚理解后台利用ireport到处报表的原理】ireport制作jasperreport报表详细过程(包括jsp端代码实现)
- 开发者使用JasperReport——带参数查询数据库
- Jasperreport+iReport制作报表
- IReport | Jasperreport 无数据或查询结果集行数为0 依然展现报表
- iReport 和 Jasperreport整合开发web报表向导(3)
- IReport与JasperReport生成HTML报表的问题
- iReport 和 Jasperreport 整合开发 WEB 报表向导(一)
- ExtJS+SpringMVC+jasperReport联合报表开发
- jasperReport分栏报表制作---Horizontal
- 开发者使用JasperReport——静态文本报表