当前位置: 首页 > 知识库问答 >
问题:

修复JasperReport中的错误

罗飞宇
2023-03-14

我需要一些关于JasperReport的帮助,这是我的模板

<?xml version="1.0"?>
<!DOCTYPE jasperReport
  PUBLIC "-//JasperReports//DTD Report Design//EN"
  "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<jasperReport name="HelloReportWorld">
    <parameter name="reportTitle" class="java.lang.String"/>
    <parameter name="author" class="java.lang.String"/>
    <parameter name="startDate" class="java.lang.String"/>
<field name="CUSTOMER_ID" class="java.lang.Integer"/>
<field name="NAME" class="java.lang.String"/>
<field name="CITY" class="java.lang.String"/>
<field name="STATE" class="java.lang.String"/>


<title>
    <band height="60">
        <textField>
            <reportElement x="0" y="10" width="500" height="40"/>
            <textElement textAlignment="Center">
            <font size="24"/>
            </textElement>
            <textFieldExpression class="java.lang.String">
                <![CDATA[$P(reportTitle)]]>
            </textFieldExpression>
        </textField>
        <textField>
            <reportElement x="0" y="40" width="500" height="20"/>
            <textElement textAlignment = "Center"/>
            <textFieldExpression class="java.lang.String">
                <![CDATA["Ejecutado por: " + $P(author) +
                " on " + $P(startDate)]]>
            </textFieldExpression>
        </textField>
    </band>
</title>
<columnHeader>
    <band height="30">
        <rectangle>
            <reportElement x="0" y="0" width="500" height="25"/>
            <graphicElement/>
        </rectangle>
        <staticText>
            <reportElement x="5" y="5" width="50" height="15"/>
            <textElement/>
            <text><![CDATA[ID]]></text>
        </staticText>
        <staticText>
            <reportElement x="55" y="5" width="250" height="15"/>
            <text><![CDATA[Nombre]]></text>
        </staticText>
        <staticText>
            <reportElement x="205" y="5" width="255" height="15"/>
            <text><![CDATA[Ciudad, Estado]]></text>
        </staticText>
    </band>
</columnHeader>
<detail>
    <band height="20">
        <textField>
            <reportElement x="5" y="0" width="50" height="15"/>
            <textElement/>
            <textFieldExpression class="java.lang.Integer"><![CDATA[$P(CUSTOMER_ID)]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="55" y="0" width="150" height="15"/>
            <textElement/>
            <textFieldExpression class="java.lang.String"><![CDATA[$P(NAME)]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="5" y="0" width="50" height="15"/>
            <textElement/>
            <textFieldExpression class="java.lang.String"><![CDATA[$P(CITY) + ", " + $P(STATE)]]></textFieldExpression>
        </textField>

    </band>
</detail>

下面是主要类:

import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;

/**
 *
 * @author alejandro
 */
public class JAsperDemo1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        String reportSource = "./reports/templates/HolaMundo.jrxml";
        String reportDest = "./reports/results/HolaMundo.html";


        Map<String, Object> params = new HashMap<String, Object>();

        params.put("reportTitle", "Informe Hola Mundo");
        params.put("author", "Jose Javier Ber");
        params.put("startDate",(new java.util.Date()).toString());

        try
        {
            JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);

            Class.forName("org.apache.derby.jdbc.ClientDriver");

            java.sql.Connection conn = DriverManager.getConnection(
                    "jdbc:derby://localhost:1527/sample", "app", "app");


            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, conn);
            JasperExportManager.exportReportToHtmlFile(jasperPrint, reportDest);

            JasperViewer.viewReport(jasperPrint);
        }catch(JRException ex){
            System.out.println(ex.getMessage());
        }
    }

}

共有1个答案

米裕
2023-03-14

您必须放:$p{reportTitle}而不是$p(reportTitle)

 类似资料:
  • 问题内容: 首先,我在iReport 5.1.0中制作了一个R_D1.jrxml文件。 我执行报告的Java代码如下所示: 当我执行该类时,出现以下异常: 我不确定自己在做什么错,或者这个异常意味着什么。 问题答案: 这里的主要问题是您尚未编译文件。将JRXML文件视为Java源文件。要运行Java文件,您必须先对其进行编译,然后才能运行。jrxml文件只是人类可读的XML文件,它描述了您想要发生

  • 问题内容: 实际上我不知道问题出在哪里。我认为这必须在创建TableLayout时进行。我不知道如何解决错误并使该应用程序正常工作。该程序显示错误“ java.lang.ArithmeticException:被零除”错误该程序具有EditText(edText),要求用户输入。它的类型是NUMBER。(这里r是edText的值)在EditText下方有一个Button(bt),它显示edText

  • 我正在做一个laravel instragram克隆网站,但突然经过一些发展当我运行php工匠服务这个错误发生。 PHP警告:require(I:\LARAVEL\LARAVEL instagram clone\vendor\composer/。/ralouphie/getallheaders/src/getallheaders.PHP):无法打开流:第66行的I:\LARAVEL\LARAVEL

  • 我使用的是flutter v1.7.8+hotfix.3。我正在创建新用户,并在firestore数据库上添加他们的详细信息。当我第一次添加用户时,它工作得很好。当我试图添加另一个新用户时,我得到以下错误,应用程序崩溃: E/CloudFireStoReplugin(11070):等待任务E/CloudFireStoReplugin(11070):java.util.concurrent.Time

  • 当我尝试构建我的android应用程序时,我如何修复这个问题。我将实现'com.google.android.gms:play-services-ads:19.8.0'更新为实现'com.google.android.gms:play-services-ads:20.4.0',现在我得到了这个错误。 jetified-play-services-measurement-18.0.2-runtime

  • 我正在使用; 雄猫8 Jasper iReport 5.6也尝试了Jasper Studio 6.1 Tomcat/lib/jasper报告-6.1.1 Tomcat/lib/mysql-连接器-java-5.1.34-bin Tomcat/lib/commons-beanutils-1.9.0.jar Tomcat/lib/commons-collections-3.2.1.jar Tomcat