java - 如何将 JRBeanCollectionDataSource 数据添加到 Jasper Report 的目录中?

标签 java jasper-reports

我在 JRBeanCollectionDataSource 中有数据。我想将此数据添加到 Jasper Report 的目录中。我尝试过但无法映射结构。我添加了下面的代码供您引用。

ArrayList<StudentDetails> studentReportList = new ArrayList<StudentDetails>();
studentReportList = getStudentReportList();
JasperReport jasperReport = null;
JasperPrint jasperPrint = null;
HashMap<String, Object> reportParms = new HashMap<String, Object>();
JasperDesign jasperDesign = JRXmlLoader.load("studentReport.jrxml");
jasperReport = JasperCompileManager.compileReport(jasperDesign);
JRBeanCollectionDataSource beanColDataSource = new JRBeanCollectionDataSource(studentReportList);
jasperPrint = JasperFillManager.fillReport(jasperReport,reportParms,beanColDataSource);

请找到studentReport.xml文件

<?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="AlarmReport" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="30" rightMargin="30" topMargin="30" bottomMargin="30" whenResourceMissingType="Empty">
    <queryString>
        <![CDATA[]]>
    </queryString>
    <field name="studentName" class="java.lang.String">
        <fieldDescription><![CDATA[studentName]]></fieldDescription>
    </field>
    <title>
            <band height="23">
                <staticText>
                    <reportElement x="10" y="5" width="150" height="15"/>
                    <textElement textAlignment="Left" verticalAlignment="Middle">
                        <font isBold="true"/>
                    </textElement>
                    <text><![CDATA[Student Name]]></text>
                </staticText>
            </band>
    </title>
    <detail>
        <band height="23">
            <textField>
                <reportElement x="10" y="5" width="150" height="15"/>
                <textElement textAlignment="Left" verticalAlignment="Middle"/>
                <textFieldExpression class="java.lang.String"><![CDATA[$F{studentName}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

我想使用在内容列表中显示,但无法添加到表格元素内。

 <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                                <datasetRun subDataset="Table Dataset 3" uuid="e10fc76c-07f0-4640-ae0c-fd7e66f5991e">
                                    <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource(1)]]></dataSourceExpression>
                                </datasetRun>
                                <jr:column width="66" uuid="b19fb361-d61a-4633-a23a-3e714f93381f">
                                    <jr:tableHeader style="table 2_TH" height="17" rowSpan="1">
                                        <staticText>
                                            <reportElement uuid="ab2cac92-a59b-4278-b5d9-31ed50d98918" x="0" y="0" width="66" height="17"/>
                                            <textElement verticalAlignment="Middle">
                                                <font size="8" isBold="true"/>
                                            </textElement>
                                            <text><![CDATA[Student Name]]></text>
                                        </staticText>
                                    </jr:tableHeader>
                                    <jr:detailCell style="table 2_TD" height="16" rowSpan="1">
                                        <textField>
                                            <reportElement uuid="5736bf99-52c4-4787-a223-a3d931c13b4b" x="0" y="0" width="66" height="16"/>
                                            <textElement/>
                                            <textFieldExpression><![CDATA[$F{studentName}]]></textFieldExpression>
                                        </textField>
                                    </jr:detailCell>
                                  </jr:column>
                        </jr:table>
                    </componentElement>
                </band>
            </detail>
        </jasperReport>

最佳答案

可能是 getStudentReportList() 返回一个空列表,因此不会打印详细信息区域。

关于java - 如何将 JRBeanCollectionDataSource 数据添加到 Jasper Report 的目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16627452/

相关文章:

java - 如何在不使用prepareStatement的情况下避免JasperReports中的sql注入(inject)

java - 如何更改 Java 中的默认 HTTP OPTIONS 参数

java - GAE 中的 Hibernate Ehcache 抛出 java.lang.NoClassDefFoundError : java. rmi.server.UID 是受限类

java - 多平台单文件存储

jasper-reports - Jasper Reports中的图像表达URL

java - 内存不足错误 : PermGen Space -- Jasper Report with Spring running on Tomcat

excel - Jasper 报告 JExcelApi 将数字导出为文本

java - 无法访问构建和清理 jar 文件中的子报表

java - (Linux) 如果 ssh 关闭,如何取回 java 应用程序(等待输入)?

java - 在Java中访问侧面范围的数组值