gpt4 book ai didi

java - JR报告不显示数据

转载 作者:太空宇宙 更新时间:2023-11-04 08:01:30 29 4
gpt4 key购买 nike

我编写此代码是为了使用 iReport 4.7.1 显示一个简单的报告。

  private void printReport() {
try {
JRTableModelDataSource dataSource = new JRTableModelDataSource(
new JTable().getModel());

String reportSource = "C:\\Reports\\report1.jrxml";
Map<String, Object> params = new HashMap<String, Object>();

params.put("Name", "SriLanka");

JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, dataSource);
JasperViewer.viewReport(jasperPrint, false);
} catch (Exception e) {
e.printStackTrace();
}
}

这是我的图书馆:

  • commons-beanutils-1.8.0.jar
  • commons-collections-2.1.1.jar
  • commons-digester-2.1.jar
  • commons-logging-1.1.1.jar
  • jasperrreports-4.7.1.jar
  • jasperreports-applet-4.7.1.jar
  • jasperreports-javaflow-4.7.1.jar
  • groovy-all-1.7.5.jar

NetBeans 输出显示此警告

Oct 08, 2012 2:57:31 PM net.sf.jasperreports.engine.component.ComponentsEnvironment findBundles WARNING: Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components

这是 .jrxml 文件:

<?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="report1" language="groovy" pageWidth="595" pageHeight="842" whenNoDataType="BlankPage" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="5174594e-de3c-4b09-932b-c6665bf6a34b">
<parameter name="Name" class="java.lang.String" isForPrompting="false"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="79" splitType="Stretch">
<textField>
<reportElement uuid="fd02a8bc-548b-41c1-aed5-2a7c2e257704" x="210" y="23" width="157" height="36"/>
<textElement>
<font size="18"/>
</textElement>
<textFieldExpression><![CDATA[$P{Name}]]></textFieldExpression>
</textField>
</band>
</title>
<pageHeader>
<band height="35" splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band height="61" splitType="Stretch"/>
</columnHeader>
<detail>
<band height="125" splitType="Stretch"/>
</detail>
<columnFooter>
<band height="45" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="54" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>

报告打开,但不显示任何文本。

最佳答案

要解决此问题,您应该:

  1. 检查您的数据源,它可以为空;
  2. 将带有字段表达式 ( <textFieldExpression><![CDATA[$F{field}]]></textFieldExpression> ) 的 textFields 元素添加到 详细信息 区域以在报表中显示记录。

无论如何,您的参数名称应显示在标题区域中(在生成的报告中)。您甚至可以传递JREmptyDataSource来检查这一点。

<小时/>

要显示数据,您可以选择以下方式之一:

1。使用细节

这是一种经典的“老派”方法,用于显示存储在数据源记录中的数据。 JR 引擎迭代数据源来呈现此部分。在 textField 元素的帮助下,我们可以显示字段值。

示例:查看 $jasperreports$\demo\samples\jasper来自 JR 的样本 distribution package .

2。使用交叉表组件

Crosstab 组件用于将数据汇总到二维网格中。

示例:查看$jasperreports$\demo\samples\crosstabs样本。

3。使用List组件

List组件迭代其记录集(在subDataset属性的帮助下定义)。

示例:查看 Using the Built-in List Component sample .

4。使用Table组件

表格用于以表格结构显示数据。作为列表组件有自己的子数据集

示例:查看 Using the Built-in Table Component sample .

4。使用子报表组件

子报表用于构建复杂的报表,例如将不同的报表编译到一个报表中。该组件通常与子查询一起操作。

示例:查看 Subreports sample .

<小时/>

您可以在 JasperReports Ultimate Guide 中阅读详细信息

关于java - JR报告不显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12779211/

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