[英]JR report doesn't show data
我已经编写了这段代码,以使用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输出显示此警告
2012年10月8日下午2:57:31 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>
报告将打开,但不显示任何文本。
要解决此问题,您应该:
<textFieldExpression><![CDATA[$F{field}]]></textFieldExpression>
)的textFields元素添加到“ 详细信息”区域,以在报表中显示记录。 无论如何,您的参数名称应显示在标题栏中(在生成的报告中)。 您甚至可以通过JREmptyDataSource进行检查。
为了显示数据,您可以选择以下一种方式:
这是一种经典的“老派”方法,用于显示数据源中记录中存储的数据。 JR引擎遍历数据源以呈现此部分。 借助textField元素,我们可以显示字段值。
示例 :从JR 分发包中查看$jasperreports$\\demo\\samples\\jasper
示例。
Crosstab组件用于将数据汇总到具有两个维度的网格中。
该示例:查看$jasperreports$\\demo\\samples\\crosstabs
示例。
List组件在其记录集(在subDataset属性的帮助下定义)上进行迭代 。
该示例 :查看使用内置列表组件示例 。
该表用于显示具有表格结构的数据。 作为List组件,有其自己的subDataset 。
该示例 :查看使用内置表组件示例 。
子报表用于构建复杂的报表,例如将不同的报表合二为一。 该组件通常与子查询一起运行。
该示例 :查看Subreports示例 。
您可以在《 JasperReports Ultimate Guide》中阅读详细信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.