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

如何在Jasper报表中的内容表中添加JRBeanDig

狄新立
2023-03-14

我在JRBeanCollectionDataSource中有数据。我想把这些数据添加到Jasper报告的目录中。我试着绘制结构图,但没有成功。我添加了下面的代码供您参考。

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>

共有1个答案

卫高明
2023-03-14

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

 类似资料:
  • 我有一个要转换成CSV格式的XML。我使用Jasper Reports来转换它,并使用Jasper Studio来设计JRXML。 这是XML: 我希望CSV格式包含以下列: fields_exitence分为3个(nonMap、ux和两者),属性在

  • 是否可以在报告中添加一个按钮,任何操作都将被修复? 示例:按钮“查看”,将显示更详细的统计信息。 备注: 我不完全理解如何制作文本元素的按钮

  • 我在主报表中有一个子报表和页脚,我需要隐藏子报表部分的页脚。有没有办法做到这一点? 详情:我有主要报告。它有几个细节带和一个页脚。其中一个细节带(细节4)用从查询返回的数据填充。在这个带之后是“细节5”带,其中只有子报告,这是最后一个细节带。我的子报告包含几页文本。我需要页脚从我的主要报告不显示在这几页。所以我需要的是:页脚应该应用于页面,这是在细节带1-4生成的,但不是“细节5”。

  • 我有一个Java的DTO对象设计如下: 我给Jasper的DTO产品是这样的: 使用Jaspersoft Studio,我可以轻松显示字段名称,但我找不到显示客户端列表的方法。 我尝试使用调色板中可用的元素List,但它需要一个数据集。好了,我创建了一个clientDataset。但是,我如何向clientDataset提供客户端列表?

  • 我正在用Java Swing和Jasper Report开发一个项目。 }}