如何将数据库中的多张图片添加到报表"detail"?



我正在iReport中构建一个报告,这样我就可以从我的db数据生成pdf。随着我的"描述"字段,我有多个图像,我想在详细波段显示。图片的数量取决于我要生成PDF的确切报告。显示这些图像的最佳方法是什么?我想把它们一个放在另一个下面,并配上相应的说明文字。文件名/位置与标题一起存储在"图片"表中。我想我需要一个子报告?

您可以使用imageExpression属性来管理要显示的图片。例如:

        <parameter name="whatImageToShow" class="java.lang.Integer" isForPrompting="true">
            <defaultValueExpression><![CDATA[Integer.valueOf(1)]]></defaultValueExpression>
        </parameter>
        ...
        <image>
            <reportElement x="0" y="296" width="270" height="65"/>
            <imageExpression><![CDATA[$P{whatImageToShow}.intValue() == 0 ? "image1.jpg" : "image2.png"]]></imageExpression>
        </image>

printWhenExpression属性的帮助下,您可以在需要显示图像时管理。例如:

        <parameter name="toShowPicture" class="java.lang.Boolean" isForPrompting="true">
            <defaultValueExpression><![CDATA[CDATA[Boolean.valueOf(false)]]></defaultValueExpression>
        </parameter>
        ...
        <image>
            <reportElement x="0" y="296" width="270" height="65">
                <printWhenExpression><![CDATA[$P{toShowPicture}.booleanValue()]]></printWhenExpression>
            </reportElement>
            <imageExpression><![CDATA[$P{whatImageToShow}.intValue() == 0 ? "image3.jpg" : "image4.png"]]></imageExpression>
        </image>

文件名/位置存储在"pictures"表中字幕。我想我需要一个子报告?

是的,您不能在一个报告中使用多个查询(数据源)。是的,你需要一个子报表。
您可以从子报表返回数据到主数据。您可以在$IREPORT_HOME$ireportsamplesSubreports文件夹中查看示例报告,并阅读本案例。

更新:
我刚刚发现有用的,因为我认为文章创建jasper报告与动态图像。

最新更新