Java 使用ireport designer工具生成jasper报告
我使用ireport designer工具生成了PDF报告。到目前为止还不错 我的问题是:Java 使用ireport designer工具生成jasper报告,java,jasper-reports,Java,Jasper Reports,我使用ireport designer工具生成了PDF报告。到目前为止还不错 我的问题是: 如果数据库中没有数据,则显示空白pdf页面。此时,我如何在pdf中显示“未找到此请求的数据?”当NodeType时,模板有一个属性 只需将其设置为WhenNodeType:AllSectionsNoDetail 这将有模板(静态字段),但没有来自数据库的动态数据 如果你只是想打印一些信息,你就必须稍微改变一下设计。您需要在报告的开头添加一个条件,以检查数据是否来自数据库,并采取相应措施。如果您想在没有数据
如果数据库中没有数据,则显示空白pdf页面。此时,我如何在pdf中显示“未找到此请求的数据?”当NodeType时,模板有一个属性 只需将其设置为WhenNodeType:AllSectionsNoDetail 这将有模板(静态字段),但没有来自数据库的动态数据
如果你只是想打印一些信息,你就必须稍微改变一下设计。您需要在报告的开头添加一个条件,以检查数据是否来自数据库,并采取相应措施。如果您想在没有数据(没有标题、页眉、页脚等)的情况下不显示报告的任何内容,则应在报告中添加一个
noData
带,并将消息放在那里。然后将whenNodeType
报告参数更改为NoDataSection
从JasperReports终极指南:
如果报告模板中定义了
部分,并且数据源为空,则填写时只考虑
部分
例如:
<?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"
whenNoDataType="NoDataSection">
<pageHeader>
<band height="20">
<staticText>
<reportElement x="0" y="0" width="100" height="20"/>
<text><![CDATA[Page Header]]></text>
</staticText>
</band>
</pageHeader>
<detail>
<band height="20">
<staticText>
<reportElement x="0" y="0" width="100" height="20"/>
<text><![CDATA[Detail]]></text>
</staticText>
</band>
</detail>
<pageFooter>
<band height="20">
<staticText>
<reportElement x="0" y="0" width="100" height="20"/>
<text><![CDATA[Page Footer]]></text>
</staticText>
</band>
</pageFooter>
<noData>
<band height="20">
<staticText>
<reportElement x="0" y="0" width="555" height="20"/>
<text><![CDATA[No data found for this request]]></text>
</staticText>
</band>
</noData>
</jasperReport>
您是否在报告中使用参数或字段?向我们展示您在可用时打印数据的代码..我使用的是参数File reportFile=new File(application.getRealPath(“report.jasper”);映射参数=新的HashMap();parameters.put(“faculty_createdby”,loginUtil.getUser_name());byte[]bytes=JasperRunManager.runReportToPdf(reportFile.getPath(),参数,con);response.setContentType(“application/pdf”);response.setContentLength(bytes.length);ServletOutputStream outStream=response.getOutputStream();扩展流。写入(字节,0,字节。长度);没有必要在报告中添加条件。如果您使用noData
部分,Jasper将自动执行此操作。但是,如果有人只想在没有来自数据库的数据时显示消息,该怎么办?您将如何做到这一点?这正是noData
部分将要做的。如果查询成功,但结果集包含0行,则会显示noData
部分(并且仅显示该部分)。您能否给我一些指向某些部分的工作链接,例如使用“无数据”部分。如果您查看我的答案,您将看到我包含了一个在iReport 5.0.0中创建的工作示例。乐队的解释在这里的第109页:Thanq太多了,将军先生。乔恩,我对三维条形图有点怀疑,1。如果是数据库中的单个记录,则条形图在条形图中显示全宽。我们如何设置宽度?如果有更多的记录,那么它将自动拉伸。2.如何仅显示Y轴上的数字和Y轴上的垂直标题-axis@Surendra你应该为这些问题提出新的问题。