我想用 JasperReports 报告中的图像替换文本(无论在何处找到TEXT,应该用图像替换)。有谁知道怎么做?
我在互联网上搜索但找不到任何东西,所以请不要对我评价为负。
答案 0 :(得分:1)
您可以借助 printWhenExpression 属性解决此任务。
我使用了 csv 数据源( holidays.csv ):
name,date
New Year's Day,January 1st
Christmas Day,December 25th
Valentine's Day,February 14th
我已经放置了两个 textFields 来显示假期的名字和假期的日期。我已经在 textField 下放置 image 元素,用假日名称显示图片。
借助 printWhenExpression ,我会显示假期的名字或图片。
iReport 中的报告设计:
jrxml 文件:
<?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="holidays" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="e0310045-780b-4af3-aa7b-ed7f5da1985f">
<queryString>
<![CDATA[]]>
</queryString>
<field name="name" class="java.lang.String"/>
<field name="date" class="java.lang.String"/>
<detail>
<band height="66" splitType="Stretch">
<image scaleImage="RealHeight">
<reportElement uuid="e7738ed8-673e-49e9-8c14-060378cb6a79" x="0" y="0" width="263" height="66">
<printWhenExpression><![CDATA[$F{name}.equals("Christmas Day")]]></printWhenExpression>
</reportElement>
<imageExpression><![CDATA["mc.jpg"]]></imageExpression>
</image>
<textField>
<reportElement uuid="167148f8-ad51-4c87-9faa-27bf18f2160e" x="0" y="0" width="263" height="66" forecolor="#FF6666">
<printWhenExpression><![CDATA[!$F{name}.equals("Christmas Day")]]></printWhenExpression>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="Forte" size="24" isItalic="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="ad7c75b4-975b-478e-8a44-090a63c52896" x="263" y="0" width="263" height="66"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="Arial" size="24" isItalic="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{date}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
生成的报告将(通过 iReport 中的预览):
<强> 备注 强>
您可以使图像的表达和使用复杂化,例如获取图像名称的变量(或带路径的名称)。