Java 使用ireport designer工具生成jasper报告

Java 使用ireport designer工具生成jasper报告,java,jasper-reports,Java,Jasper Reports,我使用ireport designer工具生成了PDF报告。到目前为止还不错 我的问题是: 如果数据库中没有数据,则显示空白pdf页面。此时,我如何在pdf中显示“未找到此请求的数据?”当NodeType时,模板有一个属性 只需将其设置为WhenNodeType:AllSectionsNoDetail 这将有模板(静态字段),但没有来自数据库的动态数据 如果你只是想打印一些信息,你就必须稍微改变一下设计。您需要在报告的开头添加一个条件,以检查数据是否来自数据库,并采取相应措施。如果您想在没有数据

我使用ireport designer工具生成了PDF报告。到目前为止还不错

我的问题是:


如果数据库中没有数据,则显示空白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你应该为这些问题提出新的问题。