【问题标题】:How do I add multiple pictures from database to a report "detail"?如何将数据库中的多张图片添加到报表“详细信息”?
【发布时间】:2011-11-08 17:51:13
【问题描述】:

我正在 iReport 中构建报告,以便可以从我的数据库数据生成 PDF。除了我的“描述”字段外,我还有多个图像,我想在细节带中显示它们。图片的数量取决于我为其生成 PDF 的确切报告。显示这些图像的最佳方法是什么?我希望他们用适当的标题将它们显示在另一个之下。文件名/位置与标题一起存储在“图片”表中。我想我需要一个子报告?

【问题讨论】:

    标签: mysql image ireport


    【解决方案1】:

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

            <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>
    

    文件名/位置与图片一起存储在“图片”表中 字幕。我想我需要一个子报告?

    是的,您不能在一份报告中使用多个查询(数据源)。是的,您需要一个子报告。
    您可以将数据从子报表返回到主数据。您可以在 $IREPORT_HOME$\ireport\samples\Subreports 文件夹中查看示例报告并阅读此case

    更新:
    我刚刚发现文章 Creating jasper reports with dynamic images 很有用。可能对你有帮助。

    【讨论】:

    • 谢谢!本教程将非常有帮助!
    猜你喜欢
    • 2021-03-30
    • 1970-01-01
    • 2011-04-02
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 2017-02-08
    相关资源
    最近更新 更多