我正在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报告与动态图像。