Jasper reports 如何使用Jasper库编译包含对webservice数据适配器引用的Jasper jrxml文件
我的一个客户在Jasper Studio中创建了一个报告。在报告中,他使用了webservice数据源,该数据源附带相应的数据适配器。他使用此数据源查询RESTful API。jrxml文件如下所示:Jasper reports 如何使用Jasper库编译包含对webservice数据适配器引用的Jasper jrxml文件,jasper-reports,Jasper Reports,我的一个客户在Jasper Studio中创建了一个报告。在报告中,他使用了webservice数据源,该数据源附带相应的数据适配器。他使用此数据源查询RESTful API。jrxml文件如下所示: <?xml version="1.0" encoding="UTF-8"?> <!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0 --
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Blank_A4" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="6581b4b3-5a83-4a40-b2a1-091d3e949e06">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="DataAdapter.xml"/>
<queryString language="WebServiceQuery">
<![CDATA[{
"getparameters" : { },
"fields" : [ {
"name" : "commercialCode",
"expression" : "commercialCode"
}, {
"name" : "classification",
"expression" : "classification"
} ],
"options" : {
"contentType" : "application/json",
"rootPath" : "_embedded.airportList",
"baseUrl" : ""
},
"headersMap" : { },
"queryData" : "",
"GETParameters" : { }
}]]>
</queryString>
<field name="commercialCode" class="java.lang.String"/>
<field name="classification" class="java.lang.String"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="79" splitType="Stretch"/>
</title>
<pageHeader>
<band height="55" splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band height="62" splitType="Stretch"/>
</columnHeader>
<detail>
<band height="125" splitType="Stretch">
<textField>
<reportElement x="0" y="20" width="100" height="30" uuid="fed44789-e146-4b33-9f10-2f88eec34e8b"/>
<textFieldExpression><![CDATA[$F{commercialCode}]]></textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band height="45" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="54" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>
上面显示的报告还引用了一个数据适配器,如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<webServiceDataAdapter class="com.jaspersoft.webservice.data.WebServiceDataAdapterImpl">
<name>Airports</name>
<wsUri>http://localhost:8080/api/airports</wsUri><authType>none</authType><verb>get</verb><language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://java.sun.com" xsi:type="java:java.lang.String">json</language></webServiceDataAdapter>
机场
http://localhost:8080/api/airportsnonegetjson
我不确定如何使用Jasper报告库编译此报告。任何帮助都将不胜感激 对于纯JasperReports,我认为这是不可能的。 Jaspersoft有一个扩展(Studio、服务器、库) 我还没有找到一种方法将它用于纯JasperReport库。安装指南仅适用于Studio或服务器,使用它们可以很好地工作 但当您从文件夹“JR”下载它时,您也有3个jar,我想它们应该包含支持JasperReport库的类 我认为应该实现JRDataSource来传递它
JasperFillManager.fillReport(字符串sourceFileName、映射参数、JRDataSource数据源)是,感谢您的反馈。我想我会按照建议使用JRDataSource路径。我真正想做的是让用户能够在Jasper Studio中配置报表rest参数(URL等),这样我就可以在创建JRDatasource时检索它们。我的意思是,您的客户端已经安装了该扩展。在Studio或服务器中定义数据适配器,然后可以在Raport中使用它。所以,您的客户机的url是“”,他正在使用GET方法获取结果。其他参数在jrxml文件的部分下定义。所以在json响应中,他在“_embedded.airportList”下查找字段“commercialCode”和“classification”。我不知道如何在纯JasperReports库中解析jrxml模板,如果您发现了,请描述一下itOK,我将在调试器中尝试一下,然后返回给您:)