簡體   English   中英

jasper報告子報告不起作用(不顯示數據庫中的數據)

[英]jasper reports Subreport not working (not displaying data from database)

我的主報告包含“摘要”部分中的子報告。 我想要的是我在數據庫中有一個名為bill no的列,我想顯示與bill no。相匹配的行(即,在查詢的where子句中,它應該where billno ='something')。

目前,我正在將參數從主報表傳遞到子報表。 但仍然無法正常工作。

主要報告:

<?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="SwastikReport" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
    <property name="ireport.zoom" value="1.5"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="411"/>
    <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA["E:\\reports\\"]]></defaultValueExpression>
    </parameter>
<subreport>
                <reportElement x="438" y="56" width="109" height="100"/>
                <subreportParameter name="billoflading">
                    <subreportParameterExpression><![CDATA[$F{billofladingno}]]></subreportParameterExpression>
                </subreportParameter>
                <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "SwastikReport_subreport.jasper"]]></subreportExpression>
            </subreport>
</jasperReport>

子報表:

<?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="SwastikReport_subreport" language="groovy" pageWidth="555" pageHeight="802" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" whenResourceMissingType="Error">
    <property name="ireport.zoom" value="1.5"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
<parameter name="billoflading" class="java.lang.String">
    <defaultValueExpression><![CDATA[]]></defaultValueExpression>
</parameter>
    <queryString>
        <![CDATA[select * from declaredvaluedetails d where d.billofladingno='$P{billoflading}']]>
    </queryString>
    <field name="billofladingno" class="java.lang.String"/>
    <field name="bookingno" class="java.lang.String"/>
    <field name="freightcharges" class="java.math.BigDecimal"/>
    <field name="ratedas" class="java.lang.String"/>
    <field name="per" class="java.math.BigDecimal"/>
    <field name="rate" class="java.math.BigDecimal"/>
    <field name="prepaid" class="java.math.BigDecimal"/>
    <field name="collect" class="java.math.BigDecimal"/>
    <field name="currencyrateofexchange" class="java.math.BigDecimal"/>
    <background>
        <band splitType="Stretch"/>
    </background>
    <detail>
        <band height="37" splitType="Stretch">
            <textField>
                <reportElement x="33" y="14" width="82" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{freightcharges}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="120" y="14" width="72" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{ratedas}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="196" y="14" width="32" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{per}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="230" y="14" width="68" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{rate}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="299" y="14" width="82" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{prepaid}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="383" y="14" width="82" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{collect}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="468" y="14" width="81" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{currencyrateofexchange}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

在主報表上顯示為空。

我有解決方案...解決方案是我必須將子報表參數映射到從主報表傳遞的參數。

子報告

**

<parameter name="billoflading" class="java.lang.String">
        <defaultValueExpression><![CDATA[$P{billoflading}]]></defaultValueExpression>
    </parameter>

**

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM