我已编写此代码以使用 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();
}
}
以下是我的图书馆:
和 NetBeans 输出显示此警告
Oct 08,2012 2:57:31 PM net.sf.jasperreports.engine.component.ComponentsEnvironment findBundles 警告:找到名称空间为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>
报告打开但不显示任何文字。
答案 0 :(得分:1)
要解决此问题,您应该:
<textFieldExpression><![CDATA[$F{field}]]></textFieldExpression>
)的 textFields 元素添加到 Detail 频段,以在报告中显示记录。无论如何,您的参数 名称 应显示在标题频段中(在生成的报告中)。您甚至可以传递 JREmptyDataSource 来检查此内容。
要显示数据,您可以选择以下方式之一:
用于显示存储在数据源的记录中的数据的经典“老派”方法。 JR 引擎遍历数据源以呈现此部分。借助 textField 元素,我们可以显示字段值。
示例:查看来自 JR distribution package的$jasperreports$\demo\samples\jasper
示例。
Crosstab 组件,用于将数据汇总到具有两个维度的网格中。
样本:查看$jasperreports$\demo\samples\crosstabs
样本。
List 组件迭代其记录集(借助 subDataset 属性定义)。
示例:查看Using the Built-in List Component sample。
表用于显示具有表格结构的数据。由于 List 组件有自己的 subDataset 。
示例:查看Using the Built-in Table Component sample。
子报告用于构建复杂的报告,例如汇编不同的报告。该组件通常使用子查询运行。
示例:查看Subreports sample。