gpt4 book ai didi

jasper-reports - 如何从 Jasper Report (.jrxml) 引用 .jrtx 模板文件?

转载 作者:行者123 更新时间:2023-12-04 08:25:17 30 4
gpt4 key购买 nike

我正在使用 this example将 jasper 模板应用于 jasper 报告。我不知道如何从 .jrxml 文件中引用 jasper 模板。 .jrxml 文件和 .jrtx 文件位于同一位置。在 Jasper 中,我指的是使用以下语法的模板。

<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="QCReport" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20"
topMargin="20" bottomMargin="20" uuid="0ea707c5-78f5-4f37-a065-a228202cb59e">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<import value="org.apache.commons.lang.StringUtils"/>
..
<template><![CDATA["JasperCustomStyle.jrtx"]]></template>
..

但它给了我 Byte data not found at: JasperCustomStyle.jrtx.异常(exception)。有人可以帮我弄清楚如何从 .jrxml 文件中引用 jasper 模板吗?

详细异常
Caused by: net.sf.jasperreports.engine.JRException: Byte data not found at: JasperCustomStyle.jrtx.
at net.sf.jasperreports.repo.RepositoryUtil.getBytesFromLocation(RepositoryUtil.java:210)
at net.sf.jasperreports.engine.xml.JRXmlTemplateLoader.loadTemplate(JRXmlTemplateLoader.java:106)
at net.sf.jasperreports.engine.fill.JRFillReportTemplate.loadTemplate(JRFillReportTemplate.java:111)
at net.sf.jasperreports.engine.fill.JRFillReportTemplate.evaluate(JRFillReportTemplate.java:89)
at net.sf.jasperreports.engine.fill.JRBaseFiller.collectTemplates(JRBaseFiller.java:740)

jrtx 文件如下所示。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jasperTemplate PUBLIC "-//JasperReports//DTD Template//EN" "http://jasperreports.sourceforge.net/dtds/jaspertemplate.dtd">

<jasperTemplate>
<style name="New style" mode="Opaque" forecolor="#000000" backcolor="#FFC800" fill="Solid" hAlign="Center" vAlign="Middle" isBold="true" isUnderline="true">
<box>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
</style>
</jasperTemplate>

最佳答案

Caused by: net.sf.jasperreports.engine.JRException: Byte data not found at: JasperCustomStyle.jrtx.

这意味着模板可以 找不到 .

您需要传递正确的路径,以便 jasper 可以找到该文件,这通常是通过使用参数来完成的

示例
<template>$P{templateLocation} + "JasperCustomStyle.jrtx"</template>
<parameter name="templateLocation"/>

到参数 templateLocation您传递包含模板的文件夹的绝对位置(包括最终的 / )

或者如果 URL(在 Web 应用程序中)
<template class="java.net.URL">$P{templateURL}</template>
<parameter name="templateURL" class="java.net.URL"/>

templateURL您将 URL 传递给模板,在 Web 应用程序中,您还可以轻松检查模板是否可用,将相同的 URL 传递给浏览器

关于jasper-reports - 如何从 Jasper Report (.jrxml) 引用 .jrtx 模板文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39216354/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com