0

I asked a similar question a year ago and didn't discover a resolution. The subreport I am working on now is in the detail band of the master, although I did try it in others just in case.

    <detail>
    <band height="34" splitType="Stretch">
        <subreport>
            <reportElement stretchType="RelativeToTallestObject" isPrintRepeatedValues="false" mode="Transparent" x="0" y="0" width="555" height="34" uuid="6318f4b9-c420-4294-a63f-1a83d338f755">
                <property name="local_mesure_unitheight" value="pixel"/>
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <subreportParameter name="item_id">
                <subreportParameterExpression><![CDATA[$F{item_id}]]></subreportParameterExpression>
            </subreportParameter>
            <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
            <subreportExpression><![CDATA["report.jasper"]]></subreportExpression>
        </subreport>
    </band>
</detail>

I checked the path to the subreport is correct. In the subreport the parameter_name is exactly the same. The .jasper file is compiled successfully.

The master report has a call to a stored procedure, and I am using one of the fields it is returning as the subreport parameter. I called it 'item_id' here. I used the wizard to map that to the subreport parameter with the same name. The idea is that the subreport should return additional information about each of the item_ids returned by the SP in the master report.

When I run the subreport on it's own it returns data for a particular item_id. I created a variable in the master to track how many rows the SP itself returns and when I run the master it shows the correct number of rows exist but no data displays on the master report. It also leaves enough empty space to appear to indicate that something is being returned but just not displayed. When I set 'remove line when blank' for the subreport element in properties from the master report I get no rows - so apparently it is returning a blank line 44 times - one for each row. Or is it?

One suggestion was to remove the connection_expression and replace it with parameters_map_expression but that didn't help either.

My best guess is that the subreport data is not getting to the master for some reason. If anyone has any suggestions I am open to anything I can do with JasperSoftStudio 6.3.

Master report:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 5.6.2.final using JasperReports        Library version 5.6.1  -->
<!-- 2016-09-07T10:21:37 -->
<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="ITEMMRPT" language="groovy" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="1aa96e89-cb24-464e-90bf-0d12bc48a516">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="staging"/>
<parameter name="billing_year" class="java.lang.Integer">
    <defaultValueExpression><![CDATA[2015]]></defaultValueExpression>
</parameter>
<parameter name="billing_month" class="java.lang.Integer">
    <defaultValueExpression><![CDATA[9]]></defaultValueExpression>
</parameter>
<parameter name="billing_day" class="java.lang.Integer">
    <defaultValueExpression><![CDATA[1]]></defaultValueExpression>
</parameter>
<parameter name="report_type" class="java.lang.String">
    <defaultValueExpression><![CDATA["DAILY"]]></defaultValueExpression>
</parameter>
<parameter name="area_cd" class="java.lang.String">
    <defaultValueExpression><![CDATA["TACM"]]></defaultValueExpression>
</parameter>
<queryString language="SQL">
    <![CDATA[exec createitembillingReport;1 @billing_year = $P{billing_year}, @billing_month = $P{billing_month}, @billing_day = $P{billing_day},@report_type=$P{report_type},@area_cd = $P{area_cd}]]>
</queryString>
<field name="item_id" class="java.lang.String"/>
<field name="item_name" class="java.lang.String"/>
<variable name="total" class="java.lang.Integer" calculation="Count">
    <variableExpression><![CDATA[$F{item_id}]]></variableExpression>
</variable>
<background>
    <band splitType="Stretch"/>
</background>
<title>
    <band height="67">
        <staticText>
            <reportElement x="60" y="33" width="242" height="17" uuid="06a14aaf-07b9-4894-bc60-0f5b3b254826">
                <property name="local_mesure_unitheight" value="pixel"/>
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <textElement>
                <font size="11"/>
            </textElement>
            <text><![CDATA[Item Listing]]></text>
        </staticText>
        <staticText>
            <reportElement x="60" y="50" width="78" height="17" uuid="365238e1-9e5f-471b-92aa-aadab4fcfc31">
                <property name="local_mesure_unitheight" value="pixel"/>
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <textElement>
                <font size="11" isBold="true"/>
            </textElement>
            <text><![CDATA[Billable as of :]]></text>
        </staticText>
        <textField>
            <reportElement x="138" y="50" width="180" height="17" uuid="c735ec59-4e96-4b22-bf70-08af130efed9"/>
            <textElement>
                <font size="11" isBold="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$P{billing_month}+"/"+$P{billing_day}+"/"+$P{billing_year}]]></textFieldExpression>
        </textField>
    </band>
</title>
<columnHeader>
    <band height="18">
        <staticText>
            <reportElement x="16" y="0" width="70" height="17" uuid="79476ab9-e5ea-40ec-b382-b22a0c5d355a">
                <property name="local_mesure_unitheight" value="pixel"/>
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <textElement>
                <font size="12" isBold="true"/>
            </textElement>
            <text><![CDATA[Item ID]]></text>
        </staticText>
        <staticText>
            <reportElement x="479" y="0" width="61" height="17" uuid="adb588f3-ed71-439a-acde-d812acee6a94">
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <textElement>
                <font size="12" isBold="true"/>
            </textElement>
            <text><![CDATA[Location]]></text>
        </staticText>
        <staticText>
            <reportElement x="260" y="0" width="97" height="17" uuid="243ce68e-c532-4056-958e-08f7a0f83d2a">
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <textElement>
                <font size="12" isBold="true"/>
            </textElement>
            <text><![CDATA[Pull Date]]></text>
        </staticText>
        <staticText>
            <reportElement x="89" y="0" width="87" height="17" uuid="ca299eb7-2aba-4529-ae76-3dfa4c6abe29">
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <textElement>
                <font size="12" isBold="true"/>
            </textElement>
            <text><![CDATA[Order Date]]></text>
        </staticText>
        <staticText>
            <reportElement x="380" y="0" width="86" height="17" uuid="c220e72b-bd29-416a-95fc-c6c8a10ab081">
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <textElement>
                <font size="12" isBold="true"/>
            </textElement>
            <text><![CDATA[Ship Date]]></text>
        </staticText>
        <staticText>
            <reportElement x="168" y="0" width="92" height="17" uuid="2ea414c5-4484-48dc-a6b5-52d4ab3ebd97">
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <textElement>
                <font size="12" isBold="true"/>
            </textElement>
            <text><![CDATA[Description]]></text>
        </staticText>
        <line>
            <reportElement x="0" y="17" width="555" height="1" uuid="ab7d193f-96d3-454a-8fdd-5e0027425d42">
                <property name="local_mesure_unitheight" value="pixel"/>
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
        </line>
    </band>
</columnHeader>
<detail>
    <band height="20" splitType="Stretch">
        <subreport>
            <reportElement isPrintRepeatedValues="false" mode="Transparent" x="0" y="4" width="555" height="16" uuid="6318f4b9-c420-4294-a63f-1a83d338f755">
                <property name="local_mesure_unitheight" value="pixel"/>
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <subreportParameter name="item_id">
                <subreportParameterExpression><![CDATA[$F{item_id}]]></subreportParameterExpression>
            </subreportParameter>
            <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
            <subreportExpression><![CDATA["report.jasper"]]></subreportExpression>
        </subreport>
        <textField>
            <reportElement x="10" y="-1" width="100" height="16" uuid="91285585-7366-46c3-b248-9dbaf0c80839"/>
            <textFieldExpression><![CDATA[$F{item_id}]]></textFieldExpression>
        </textField>
    </band>
</detail>
<pageFooter>
    <band height="15">
        <textField>
            <reportElement x="110" y="0" width="100" height="15" uuid="54e9321a-c062-49f4-8b32-02f4c41458c0"/>
            <textElement textAlignment="Right"/>
            <textFieldExpression><![CDATA["Page " + $V{PAGE_NUMBER}]]></textFieldExpression>
        </textField>
        <textField evaluationTime="Report">
            <reportElement x="210" y="0" width="100" height="15" uuid="00b215e9-ba28-413b-ad44-4c4a3aac7fdd"/>
            <textElement textAlignment="Left"/>
            <textFieldExpression><![CDATA[" of " + $V{PAGE_NUMBER}]]></textFieldExpression>
        </textField>
        <staticText>
            <reportElement x="400" y="-1" width="50" height="15" uuid="0dae2a30-28fe-4a71-9dc9-ec906ec05c78"/>
            <text><![CDATA[Run Date :]]></text>
        </staticText>
        <textField pattern="MMMMM dd, yyyy">
            <reportElement x="450" y="1" width="100" height="13" uuid="34cfa033-e43d-4668-852d-3019f322ea5a"/>
            <textFieldExpression><![CDATA[new SimpleDateFormat("MMM dd, yyyy").format(TODAY())]]></textFieldExpression>
        </textField>
    </band>
</pageFooter>
<summary>
    <band height="18">
        <textField>
            <reportElement x="120" y="2" width="50" height="16" uuid="4a336320-9341-42dd-98c4-1cec2c2d6a15"/>
            <textFieldExpression><![CDATA[$V{total}]]></textFieldExpression>
        </textField>
        <staticText>
            <reportElement x="10" y="2" width="100" height="13" uuid="00887a5b-9421-402b-98b8-b041f08959f0">
                <property name="local_mesure_unitheight" value="pixel"/>
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <text><![CDATA[Total Items]]></text>
        </staticText>
    </band>
</summary>

Subreport:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 5.6.2.final using JasperReports Library version 5.6.1  -->
<!-- 2016-09-07T10:37:50 -->
<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="report" pageWidth="555" pageHeight="802" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="9014add6-11f0-4647-97ec-9b9f3f78afce">
<parameter name="item_id" class="java.lang.String" isForPrompting="false"/>
<queryString language="SQL">
    <![CDATA[select b.item_id,
            b.order_dt,
            cpnv.item_desc,
            cpnv.pull_dt,
            b.ship_dt,
            location = (select bjc.location_cd
                          from warehouse_location bjc
                          where bjc.item = b.item_id
                           and bjc.location_start_dt = 
                              (select max(location_start_dt) 
                               from  warehouse_location 
                                where item_id = b.item_id))
from item_names cpnv
join items b
ON cpnv.sub_id = b.sub_id
where (ship_dt is null or ship_dt >= '1-24-16 22:00')
and b.item_id = $P{item_id}]]>
</queryString>
<field name="item_id" class="java.lang.String"/>
<field name="order_dt" class="java.sql.Timestamp"/>
<field name="item_desc" class="java.lang.String"/>
<field name="pull_dt" class="java.sql.Timestamp"/>
<field name="ship_dt" class="java.sql.Timestamp"/>
<field name="location" class="java.lang.String"/>
<background>
    <band splitType="Stretch"/>
</background>
<detail>
    <band height="41" splitType="Stretch">
        <textField isStretchWithOverflow="true" evaluationTime="Band" isBlankWhenNull="false">
            <reportElement x="9" y="11" width="67" height="20" isPrintWhenDetailOverflows="true" uuid="12d147f8-532b-4ed5-a249-e03661099e4f">
                <property name="local_mesure_unitheight" value="pixel"/>
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <textFieldExpression><![CDATA[$F{item_id}]]></textFieldExpression>
        </textField>
        <textField isStretchWithOverflow="true" evaluationTime="Band" isBlankWhenNull="false">
            <reportElement x="89" y="11" width="78" height="20" isPrintWhenDetailOverflows="true" uuid="76ea3e37-9b7a-44e3-a1ae-5850072b90ef">
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <textFieldExpression><![CDATA[new SimpleDateFormat("MM/dd/yy hh:mm").format($F{order_dt})]]></textFieldExpression>
        </textField>
        <textField isStretchWithOverflow="true" evaluationTime="Band" isBlankWhenNull="false">
            <reportElement x="168" y="11" width="156" height="20" isPrintWhenDetailOverflows="true" uuid="9ab7bd73-e633-4d51-8271-00c673750a38">
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <textFieldExpression><![CDATA[$F{item_desc}]]></textFieldExpression>
        </textField>
        <textField isStretchWithOverflow="true" evaluationTime="Band" isBlankWhenNull="false">
            <reportElement x="326" y="11" width="48" height="20" isPrintWhenDetailOverflows="true" uuid="b0ac4ef7-e951-4fb2-ab80-3b6dc3103764">
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <textFieldExpression><![CDATA[new SimpleDateFormat("MM/dd/yy").format($F{pull_dt})]]></textFieldExpression>
        </textField>
        <textField isStretchWithOverflow="true" evaluationTime="Band" isBlankWhenNull="false">
            <reportElement x="380" y="11" width="69" height="20" isPrintWhenDetailOverflows="true" uuid="83cb0048-4b23-42a9-a48d-63501a9f242d">
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <textFieldExpression><![CDATA[new SimpleDateFormat("MM/dd/yy hh:mm").format($F{ship_dt})]]></textFieldExpression>
        </textField>
        <textField isStretchWithOverflow="true" evaluationTime="Band" isBlankWhenNull="false">
            <reportElement x="479" y="11" width="54" height="20" isPrintWhenDetailOverflows="true" uuid="67a5bd0d-cd6d-4910-83d0-396fc36781d3">
                <property name="com.jaspersoft.studio.unit.height" value="px"/>
            </reportElement>
            <textFieldExpression><![CDATA[$F{location}]]></textFieldExpression>
        </textField>
    </band>
</detail>

I changed some of the names of things for proprietary reasons. Hopefully they are consistent. If something doesn't jive it was probably lost in translation.

As noted the query works fine in the subreport. When i give it one of the item_ids from the procedure in the master report it displays all the fields correctly for that item. It just won't come through to the master report.

djailer
  • 331
  • 1
  • 5
  • 23
  • Please add some pictures with the behaviour. – tobi6 Sep 02 '16 at 21:21
  • <![CDATA["report.jasper"]]> you should use absolute path + show us relevant part of subreport, query, parameters etc. – Petter Friberg Sep 02 '16 at 21:32
  • 1
    @djailer: Don't directly encode an absolute path. Use [parameters](http://stackoverflow.com/a/5520421/59087) as they are far more flexible when it comes to testing and running reports in different environments. For example: `$P{SUBREPORTS_PATH} + $P{SUBREPORT_NAME} + ".jasper"`. – Dave Jarvis Sep 03 '16 at 18:25
  • I get confused easily. 'you should use absolute path..', 'Don't directly encode an absolute path...' I am an end user and I think we account for test/production environments differently than it sounds like you are referring to. For my purposes the environment effectively stays the same regardless. I get the concept though. – djailer Sep 07 '16 at 17:56

1 Answers1

1

You could try to print the subreport parameter $P{item_id} in the title band of the subreport to check if the parameter passing works correctly.

Depending on the height of the main reports detail band, Maybe you have to remove the top and bottom margin of the subreport.

TheLostMind
  • 35,966
  • 12
  • 68
  • 104
Iceey
  • 63
  • 2
  • 6
  • Great idea!!. Yes, the parameter shows up from the subreport on the Master when I put the $P{item_id} in the subreport title band. They are the same as the items when I list them from the SP in the master report so it looks like it is indeed passing that value and the subreport is getting it. I tried changing the height of the master report detail band and only got larger blank areas for each row. I have already removed the margins from the subreport. – djailer Sep 07 '16 at 17:32
  • You could use the built in variable REPORT_COUNT to check if there are data rows in the sub report. Place the text field in the title band as well and set the evaluation time of the text field to "Report". – Iceey Sep 10 '16 at 06:57