Jasper reports 在主报表中使用表数据集字段值

Jasper reports 在主报表中使用表数据集字段值,jasper-reports,Jasper Reports,您看不到图像,因为它没有正确的评估时间-在您的情况下,它需要是波段 staticText不支持此类设置,您需要将其转换为textField,并为评估时间属性设置相同的设置 但是,即使有上述建议,您仍然可以从ImageDemoDataset子数据集中看到最后一个值。如果这是你想要的,那就好了 但是,如果要为子数据集中的每个记录显示一个图像,则必须在表中执行。如果存在间距问题,您可以创建一个列组,并将图像放置在组页脚中,将其隔离在主数据下方 编辑:看起来您想要的实际上更简单,不应该包含变量。您只需要

您看不到图像,因为它没有正确的
评估时间
-在您的情况下,它需要是
波段

staticText
不支持此类设置,您需要将其转换为
textField
,并为
评估时间
属性设置相同的设置

但是,即使有上述建议,您仍然可以从
ImageDemoDataset
子数据集中看到最后一个值。如果这是你想要的,那就好了

但是,如果要为
子数据集中的每个记录显示一个图像,则必须在表中执行。如果存在间距问题,您可以创建一个
列组
,并将图像放置在
组页脚
中,将其隔离在主数据下方

编辑:看起来您想要的实际上更简单,不应该包含变量。您只需要在同一数据源上重复。 这可以通过两种方式完成:

(1) 。使用原始的
ImageDataSource
参数:

将表datasetRun的表达式设置为:

然后在表下创建一个列表组件,使用与表和初始数据源表达式相同的
子数据集

并在列表选项卡的列表组件属性中将其
打印顺序
设置为
水平
。确保还指定了
单元格宽度
,使其足够小,以允许重复项水平流动

克隆表的数据源将确保表不会耗尽数据源,因此列表组件仍然能够遍历它

(2) 。与其将
JRBeanCollectionDataSource
作为参数传递,不如只传递创建它所用的集合,并为其提供一个参数。这样,您就不再需要克隆数据源:

然后使表datasetRun的表达式如下所示:


然后使用用于表的相同的
子数据集创建一个列表,并使用上面的
dataSourceExpression
。您应该按照(1)中的相同方式设置列表。

Hello@Narcis谢谢您的建议,在当前代码中,我提到我在数据集字段中传递图像名称。当前我使用的是静态路径,所以我只需要在主报表中输入表数据集的变量/字段的名称。我对表数据集使用返回值,但它不起作用。在我回答的第一部分(前三段),我解释了为什么它在您的情况下不起作用,以及如何修复它。你们试过了吗?首先,我试着用字符串演示图像,它的工作时间是图像/二进制,而你们的图像时间是blob。在我的例子中,我首先直接使用了该图像的位置,我尝试在表中显示该图像在这个评估时间内的工作情况(这非常糟糕)。但现在我想在我的主报表中显示这些图像。在我的代码中,我使用变量中的字段元素在数据集运行时返回,但不幸的是,它不起作用。JasperReports中的元素没有图像/二进制或blob值。此外,还不清楚什么是有效的,什么是无效的,在什么情况下——由于标点符号使用不当,你的评论几乎难以辨认。
<?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="TestingImage" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isIgnorePagination="true" uuid="5470e3fc-1c9c-4841-8814-e3a935fa6684"> <property name="ireport.zoom" value="1.0"/><property name="ireport.x" value="0"/><property name="ireport.y" value="229"/><style name="table"><box><pen lineWidth="1.0" lineColor="#000000"/></box></style><style name="table_TH" mode="Opaque" backcolor="#F0F8FF"><box><pen lineWidth="0.5" lineColor="#000000"/></box></style><style name="table_CH" mode="Opaque" backcolor="#BFE1FF"><box><pen lineWidth="0.5" lineColor="#000000"/></box></style><style name="table_TD" mode="Opaque" backcolor="#FFFFFF"><box><pen lineWidth="0.5" lineColor="#000000"/></box></style><style name="Table_TH" mode="Opaque" backcolor="#F0F8FF"><box><pen lineWidth="0.5" lineColor="#000000"/><topPen lineWidth="0.5" lineColor="#000000"/><leftPen lineWidth="0.5" lineColor="#000000"/><bottomPen lineWidth="0.5" lineColor="#000000"/<rightPen lineWidth="0.5" lineColor="#000000"/></box></style><style name="Table_CH" mode="Opaque" backcolor="#BFE1FF"><box><pen lineWidth="0.5" lineColor="#000000"/>
        <topPen lineWidth="0.5" lineColor="#000000"/>
        <leftPen lineWidth="0.5" lineColor="#000000"/>
        <bottomPen lineWidth="0.5" lineColor="#000000"/>
        <rightPen lineWidth="0.5" lineColor="#000000"/>
    </box>
</style>
<style name="Table_TD" mode="Opaque" backcolor="#FFFFFF">
    <box>
        <pen lineWidth="0.5" lineColor="#000000"/>
        <topPen lineWidth="0.5" lineColor="#000000"/>
        <leftPen lineWidth="0.5" lineColor="#000000"/>
        <bottomPen lineWidth="0.5" lineColor="#000000"/>
        <rightPen lineWidth="0.5" lineColor="#000000"/>
    </box>
</style>
<subDataset name="ImageDemoDataset" uuid="47414685-b792-4a30-9b14-fc32127ad3cc">
    <parameter name="lastname" class="java.lang.String">
        <defaultValueExpression><![CDATA[$F{picture}]]></defaultValueExpression>
    </parameter>
    <parameter name="firstname" class="java.lang.String">
        <defaultValueExpression><![CDATA[$F{firstname}]]></defaultValueExpression>
    </parameter>
    <queryString>
        <![CDATA[]]>
    </queryString>
    <field name="firstname" class="java.lang.String"/>
    <field name="lastname" class="java.lang.String"/>
    <field name="email" class="java.lang.String"/>
    <field name="phone_number" class="java.lang.String"/>
    <field name="picture" class="java.lang.String"/>
    <variable name="imagePath" class="java.lang.String" resetType="None">
        <variableExpression><![CDATA[$F{picture}]]></variableExpression>
    </variable>
</subDataset>
<parameter name="ImageDataSource" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
<queryString>
    <![CDATA[]]>
</queryString>
<variable name="varImage" class="java.lang.String" resetType="None"/>
<detail>
    <band height="364" splitType="Stretch">
        <componentElement>
            <reportElement x="18" y="0" width="474" height="216" uuid="771aa5d8-1470-4fd9-b062-a913b6014f19">
                <property name="net.sf.jasperreports.export.headertoolbar.table.name" value=""/>
            </reportElement>
            <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" whenNoDataType="AllSectionsNoDetail">
                <datasetRun subDataset="ImageDemoDataset" uuid="c4a063af-d8d1-41c4-98bf-660a9eab651e">
                    <dataSourceExpression><![CDATA[$P{ImageDataSource}]]></dataSourceExpression>
                    <returnValue fromVariable="imagePath" toVariable="varImage"/>
                </datasetRun>
                <jr:column width="70" uuid="6aa96500-79ab-4b8b-aa5f-0c9dbc22638f">
                    <jr:detailCell height="30" rowSpan="1">
                        <textField>
                            <reportElement x="0" y="0" width="70" height="30" uuid="9528bbd1-627c-424c-a3f0-872f92799c94"/>
                            <textFieldExpression><![CDATA[$F{firstname}]]></textFieldExpression>
                        </textField>
                    </jr:detailCell>
                </jr:column>
                <jr:column width="90" uuid="ba88fb55-d423-4d1e-99a1-b81c44f6e65a">
                    <jr:detailCell height="30" rowSpan="1">
                        <textField>
                            <reportElement x="0" y="0" width="90" height="30" uuid="5c85fd56-54ba-4d22-a3e4-adcdbbbc2b4f"/>
                            <textElement>
                                <font size="8"/>
                            </textElement>
                            <textFieldExpression><![CDATA[$F{lastname} ]]></textFieldExpression>
                        </textField>
                    </jr:detailCell>
                </jr:column>
                <jr:column width="100" uuid="29524685-b68a-4906-be22-50b0acacba7d">
                    <jr:detailCell height="30" rowSpan="1">
                        <textField>
                            <reportElement x="0" y="0" width="100" height="30" uuid="9dacce68-21ca-4bcc-b9cb-bad1b3661611"/>
                            <textFieldExpression><![CDATA[$F{email}]]></textFieldExpression>
                        </textField>
                    </jr:detailCell>
                </jr:column>
                <jr:column width="94" uuid="4bb9635f-4173-4c5b-95ce-5a12a2332ea1">
                    <jr:detailCell height="30" rowSpan="1">
                        <textField>
                            <reportElement x="0" y="0" width="94" height="30" uuid="8c6c58b1-d3fd-4fad-995a-caaaea6afe8e"/>
                            <textFieldExpression><![CDATA[$F{phone_number}]]></textFieldExpression>
                        </textField>
                    </jr:detailCell>
                </jr:column>
                <jr:column width="100" uuid="b500de9f-6abf-41b8-9e5d-d408b94d32ce">
                    <jr:detailCell height="30" rowSpan="1">
                        <textField>
                            <reportElement x="0" y="0" width="100" height="30" uuid="0e6a1e56-974f-41a3-af08-0cf5b832b573"/>
                            <textFieldExpression><![CDATA[$F{picture}]]></textFieldExpression>
                        </textField>
                    </jr:detailCell>
                </jr:column>
            </jr:table>
        </componentElement>
        <image scaleImage="FillFrame" hAlign="Center" vAlign="Middle">
            <reportElement x="48" y="266" width="100" height="98" uuid="290e1eb9-3a18-4a65-93d4-d155b98ce964">
                <printWhenExpression><![CDATA[!$V{varImage}.equalsIgnoreCase("null")]]></printWhenExpression>
            </reportElement>
            <imageExpression><![CDATA["C:\\Users\\jigpra\\Pictures\\"+$V{varImage}]]></imageExpression>
        </image>
        <staticText>
            <reportElement x="48" y="231" width="100" height="20" uuid="32fd136d-d7c4-4256-be6c-e9ad7d5f7592"/>
            <textElement>
                <font size="12"/>
            </textElement>
            <text><![CDATA[$V{varImage}]]></text>
        </staticText>
    </band>
</detail>