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

使用JasperReports API生成报表时获取空值

司马彦
2023-03-14

我使用iReport设计了我的报告,并用Java编译了它。

public class PdfFromJasperFile {

    public static void main(String[] args) throws JRException, IOException {

        JasperReport jasperReport;
        JasperPrint jasperPrint;
        Map param = new HashMap();
        try {
            String sourceFileName = "C:/Users/Sadagopan/Documents/report3.jrxml";

            jasperReport = JasperCompileManager.compileReport(sourceFileName);
            jasperPrint = JasperFillManager.fillReport(jasperReport, param,
                    new JREmptyDataSource());
            JasperExportManager.exportReportToHtmlFile(jasperPrint, 
                    "C:/Users/Sadagopan/Documents/sample.html");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<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="report3" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="3d69a5d5-0c1e-4b1f-9424-513fa329f402">
    <queryString>
        <![CDATA[Select * from person where name ='sadagopan']]>
    </queryString>
    <field name="id" class="java.lang.Long">
        <fieldDescription><![CDATA[]]></fieldDescription>
    </field>
    <field name="name" class="java.lang.String">
        <fieldDescription><![CDATA[]]></fieldDescription>
    </field>
    <field name="address" class="java.lang.String">
        <fieldDescription><![CDATA[]]></fieldDescription>
    </field>
    <field name="phonenumber" class="java.lang.String">
        <fieldDescription><![CDATA[]]></fieldDescription>
    </field>
    <field name="salary" class="java.math.BigDecimal">
        <fieldDescription><![CDATA[]]></fieldDescription>
    </field>
    <field name="pension" class="java.math.BigDecimal">
        <fieldDescription><![CDATA[]]></fieldDescription>
    </field>
    <group name="id">
        <groupExpression><![CDATA[$F{id}]]></groupExpression>
    </group>
    <group name="name">
        <groupExpression><![CDATA[$F{name}]]></groupExpression>
    </group>
    <group name="phonenumber">
        <groupExpression><![CDATA[$F{phonenumber}]]></groupExpression>
    </group>
    <group name="salary">
        <groupExpression><![CDATA[$F{salary}]]></groupExpression>
    </group>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band height="60" splitType="Stretch">
            <staticText>
                <reportElement uuid="a006c204-9feb-4302-90b1-fe5bdddbe3d8" x="89" y="11" width="384" height="49"/>
                <textElement>
                    <font size="36"/>
                </textElement>
                <text><![CDATA[Person Salary report]]></text>
            </staticText>
        </band>
    </title>
    <pageHeader>
        <band height="27" splitType="Stretch"/>
    </pageHeader>
    <columnHeader>
        <band height="25" splitType="Stretch">
            <staticText>
                <reportElement uuid="b74a5413-2dee-4cd5-ac06-e73a022343bc" x="0" y="5" width="48" height="20"/>
                <textElement/>
                <text><![CDATA[ID   ]]></text>
            </staticText>
            <staticText>
                <reportElement uuid="9df2c923-e5b6-4bb0-95f0-5c437495ea53" x="63" y="5" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[Name]]></text>
            </staticText>
            <staticText>
                <reportElement uuid="b054ca79-f62e-4c80-817f-270e9ee4839a" x="163" y="5" width="176" height="20"/>
                <textElement/>
                <text><![CDATA[Address]]></text>
            </staticText>
            <staticText>
                <reportElement uuid="e49b408e-8c6f-4aea-af7b-15ab31eb4643" x="329" y="5" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[Phonenumber]]></text>
            </staticText>
            <staticText>
                <reportElement uuid="4bf8ce1f-5284-4642-a45a-90aeff267abd" x="429" y="5" width="59" height="20"/>
                <textElement/>
                <text><![CDATA[salary]]></text>
            </staticText>
            <staticText>
                <reportElement uuid="f99f4ce6-d8df-41b6-b1cb-8a5ef17b46c3" x="488" y="5" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[pension]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="53" splitType="Stretch">
            <textField>
                <reportElement uuid="e91cc334-4623-42a2-bc78-e6c248606f65" x="0" y="0" width="48" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="3b8498fb-8560-4178-86bf-183ab6855d49" x="63" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="78c2be84-eebd-4465-b8c2-53d201e3246a" x="163" y="0" width="166" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{address}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="813442d3-a459-4fc9-83fb-ac170bf5a9a8" x="329" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{phonenumber}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="37d739d1-f413-465f-aecc-6bc2a3b8ff72" x="429" y="0" width="59" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{salary}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="99c32bab-b3d5-4ade-bb47-b3858ce6e2d6" x="488" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{pension}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <columnFooter>
        <band height="236" splitType="Stretch">
            <pieChart>
                <chart>
                    <reportElement uuid="e214bf8f-78d8-424b-a617-4b417385a9e5" x="48" y="21" width="440" height="215"/>
                    <chartTitle/>
                    <chartSubtitle/>
                    <chartLegend/>
                </chart>
                <pieDataset>
                    <keyExpression><![CDATA[$F{id}]]></keyExpression>
                    <valueExpression><![CDATA[$F{salary}]]></valueExpression>
                </pieDataset>
                <piePlot>
                    <plot/>
                    <itemLabel/>
                </piePlot>
            </pieChart>
        </band>
    </columnFooter>
    <pageFooter>
        <band height="54" splitType="Stretch"/>
    </pageFooter>
    <summary>
        <band height="42" splitType="Stretch"/>
    </summary>
</jasperReport>

共有1个答案

米俊喆
2023-03-14

因为您将JREMPTYDataSource()传递给报表,所以$F{id}为空

以下是可以传递给报表的可能数据源。

 类似资料:
  • 我正在创建一个JasperReports的报告,其中只有子报告。 以下是我目前面临的场景。 为了简化问题,让我们只考虑两个 jasper 报告:mainReport 和 subReportFile1。 我的主报告jasper文件如下: 子报表具有以下字段,我已为其创建了以下自定义 Bean 类,并将其作为参数发送到主报表文件。我有具有以下字段的自定义BeanClass: 我正在我的 java 文件

  • 当我试图通过使用JavaBean数据源并在表中显示bean的字段值来生成报告时,PDF报告显示的是空值。 我有一个简单的bean(PersonBean)如下所示: 填充并返回bean集合的Person类如下所示:

  • 我从jenkins控制台收到以下消息,但是文件夹是空的,报表没有数据。 C:\Program Files(x86)\Jenkins\Workspace\SCS测试>CD C:\Checkouts\SCS\Test C:\checkouts\scs\test>“behave-tags=@defrost_007-f allure_behave.formatter:allureformatter-o C

  • 本文向大家介绍使用jspdf生成pdf报表,包括了使用jspdf生成pdf报表的使用技巧和注意事项,需要的朋友参考一下 由于前台html已经动态生成报表,而且,前台有一个功能,一个date range组件,当你拖动的时候,报表会在不提交到后台的情况下动态变化。 因此需要用到js生成生报表: 用到的组件: 前台动态生成的chart现在一般是用的html5的canvas或者是svg,很不幸运,我遇到的

  • 我需要创建订单申报报告,我正在使用jasper studio创建jasper模板。在该模板中,我有订单id、客户详细信息和他的地址,我必须用这些详细信息创建一个报告。 我下面有jasper报告代码 但是不是,我必须传递Java bean类,所以jasper引擎必须从一个Java bean中获取数据,我已经将,它获取bean列表,但我的要求只是一个具有订单详细信息的bean。请给我一点建议

  • 问题内容: 我正在使用Eureka表单生成器构建表单,但不了解如何在表单内部获取值。他们在此处的文档中提供了说明。 表单结果被传递到字典: 您可能已经注意到结果字典键是行标记值,而值是行值。只有带有标签值的行将被添加到字典中。 我的代码: 在这里,制定命令的公共职能 问题答案: 我自己弄清楚了。现在还不清楚我是否需​​要在要从中检索值的行上设置标签: