如何使用参数显示默认图像?

时间:2016-04-22 13:58:52

标签: jasper-reports

我有一个我在网络服务器上生成的报告。报告包含和图像,我作为参数传递,所有参数都可以在报告生成中正常工作。

但是我也想在Jaspersoft Studio的报表设计中使用这个图像,并想知道如何做到这一点。它可以作为defaultValueExpression加载,例如下面的内容吗?

<parameter name="MyLogo" class="java.lang.Object">
    <parameterDescription><![CDATA[]]></parameterDescription>
    <defaultValueExpression>path/to/file here?</defaultValueExpression>
</parameter>

1 个答案:

答案 0 :(得分:1)

要显示位置图片,您需要在imageExpression

中指明绝对路径

出于这个原因,我经常使用2个参数,1表示基本路径(图像的位置),1表示要显示的图像(图像名称),您可以指示defaultValueExpression以及是否需要更改它们通过参数映射传递您的值。当然,您只能使用一个包含图像完整绝对路径的参数。

示例

<?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="image" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="61ee899d-277b-4efa-9306-c325b54ac022">
    <parameter name="IMAGE_PATH" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA["C:\\Users\\pette\\Desktop\\tmp\\"]]></defaultValueExpression>
    </parameter>
    <parameter name="THE_IMAGE" class="java.lang.String">
        <defaultValueExpression><![CDATA["theboss.jpeg"]]></defaultValueExpression>
    </parameter>
    <title>
        <band height="118" splitType="Stretch">
            <image scaleImage="RealSize">
                <reportElement x="0" y="0" width="139" height="95" uuid="f5f1c323-b120-48ed-98a5-478a5b907429"/>
                <imageExpression><![CDATA[$P{IMAGE_PATH} + $P{THE_IMAGE}]]></imageExpression>
            </image>
        </band>
    </title>
</jasperReport>

<强>输出

Result