我遇到了Jasper Reports的XML数据源问题.当我selectExpression
在JRXmlDataSource
构造函数中使用时,一切正常,但当我使用queryString
时.jrxml
,我没有记录.
工作实例:
JRXmlDataSource ds2 = new JRXmlDataSource(new FileInputStream(dataSourceFile), "/pages/page");
Run Code Online (Sandbox Code Playgroud)
不工作的例子:
JRXmlDataSource ds1 = new JRXmlDataSource(new FileInputStream(dataSourceFile));
<jasperReport>
<queryString language="xPath">
<![CDATA[/pages/page]]>
</queryString>
...
</jasperReport>
Run Code Online (Sandbox Code Playgroud)
数据XML:
<?xml version="1.0" encoding="UTF-8"?>
<pages>
<page>
<firstname>X</firstname>
<lastname>Y</lastname>
</page>
<page>
<firstname>Z</firstname>
<lastname>V</lastname>
</page>
<page>
<firstname>B</firstname>
<lastname>S</lastname>
</page>
</pages>
Run Code Online (Sandbox Code Playgroud)
我找到了解决方案.JasperFillManager
可以传递XML文档,而不是传递XML dataSource .现在<queryString language="xPath">
内部.jrxml
模板中的XPath 可以处理传递的文档,这就是我想要的.
Document document = JRXmlUtils.parse(JRLoader.getLocationInputStream(dataSourceFile));
params.put(JRXPathQueryExecuterFactory.PARAMETER_XML_DATA_DOCUMENT, document);
jasperPrint = JasperFillManager.fillReport(jasperReport, params);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3528 次 |
最近记录: |