2013-04-05 81 views
0

我跟着this线程尝试将子报表metrics.LINES_OF_CODE_1metrics.MAINTAINABILITY_1中的值从子报表返回到主报表,但唯一得到的值为空。我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="report7" language="groovy" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="fd6ce9ca-1ecb-4541-b6b2-446f4da339de"> 
    <property name="ireport.jasperserver.reportUnit" value="/SAW/Database/report7"/> 
    <property name="ireport.jasperserver.url" value="http://172.16.230.131:8081/jasperserver/ser vices/repository"/> 
    <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false"> 
     <defaultValueExpression><![CDATA["/Users/mjohansson/Downloads/"]]></defaultValueExpression> 
    </parameter> 
    <parameter name="ParameterMainReport" class="java.lang.String"/> 
    <queryString language="MongoDbQuery"> 
     <![CDATA[{ 
    'collectionName':'benchmark', 
    sort:{productivityAndProcessMetrics.operationalCost.overallCost:-1} 
}]]> 
    </queryString> 
    <field name="systemID" class="java.lang.String"/> 
    <field name="productivityAndProcessMetrics.operationalCost.overallCost" class="java.lang.Double"/> 
    <variable name="metrics.LINES_OF_CODE_1" class="java.lang.Double" resetType="None" calculation="System"/> 
    <variable name="metrics.MAINTAINABILITY_1" class="java.lang.Double" resetType="None" calculation="System"/> 
    <title> 
     <band height="20"> 
      <staticText> 
      <reportElement uuid="248b1d82-f1a8-4a3e-8fab-58ed34517b9c" x="0" y="0" width="175" height="20"/> 
       <box> 
        <topPen lineWidth="1.0"/> 
        <leftPen lineWidth="1.0"/> 
        <bottomPen lineWidth="1.0"/> 
        <rightPen lineWidth="1.0"/> 
       </box> 
       <textElement> 
        <font isBold="true"/> 
       </textElement> 
       <text><![CDATA[System ID]]></text> 
      </staticText> 
      <staticText> 
       <reportElement uuid="a2b5c406-76a0-4ffa-b84f-fcf17d43a768" x="275" y="0" width="125" height="20"/> 
       <box> 
        <topPen lineWidth="1.0"/> 
        <leftPen lineWidth="1.0"/> 
        <bottomPen lineWidth="1.0"/> 
        <rightPen lineWidth="1.0"/> 
       </box> 
       <textElement textAlignment="Right"> 
        <font isBold="true"/> 
       </textElement> 
       <text><![CDATA[LOC]]></text> 
      </staticText> 
      <staticText> 
       <reportElement uuid="26c40738-a9c9-4e3a-8f32-2d69f38be204" x="175" y="0" width="100" height="20"/> 
       <box> 
        <topPen lineWidth="1.0"/> 
        <leftPen lineWidth="1.0"/> 
       <bottomPen lineWidth="1.0"/> 
        <rightPen lineWidth="1.0"/> 
       </box> 
       <textElement textAlignment="Right"> 
        <font isBold="true"/> 
       </textElement> 
       <text><![CDATA[MaintenanceCost]]></text> 
      </staticText> 
      <staticText> 
       <reportElement uuid="2cca751f-1ffa-4c6e-855c-24c5bf4a9b3f" x="400" y="0" width="125" height="20"/> 
       <box> 
        <topPen lineWidth="1.0"/> 
        <leftPen lineWidth="1.0"/> 
        <bottomPen lineWidth="1.0"/> 
        <rightPen lineWidth="1.0"/> 
       </box> 
       <textElement textAlignment="Right"> 
        <font isBold="true"/> 
       </textElement> 
       <text><![CDATA[Maintainability]]></text> 
      </staticText> 
     </band> 
    </title> 
    <detail> 
     <band height="21" splitType="Stretch"> 
      <textField isBlankWhenNull="true"> 
       <reportElement uuid="1510b437-bfe1-4610-aeea-78c24d5f0c42" x="0" y="1" width="175" height="20" isRemoveLineWhenBlank="true"/> 
       <box> 
        <topPen lineWidth="0.0"/> 
       <leftPen lineWidth="0.0"/> 
        <bottomPen lineWidth="0.0"/> 
        <rightPen lineWidth="0.0"/> 
       </box> 
       <textElement/> 
       <textFieldExpression> <![CDATA[($F{productivityAndProcessMetrics.operationalCost.overallCost}!=null)?$F{systemID}:""]]></textFieldExpression> 
     </textField> 
     <subreport> 
      <reportElement uuid="2252d608-802e-442f-a3ee-07619e955640" x="275" y="1" width="250" height="20" isRemoveLineWhenBlank="true"/> 
      <subreportParameter name="SystemID"> 
       <subreportParameterExpression><![CDATA[($F{productivityAndProcessMetrics.operationalCost.overallCost}!=null)?$F{systemID}:null]]></subreportParameterExpression> 
      </subreportParameter> 
      <subreportParameter name="ParameterSubReport"> 
       <subreportParameterExpression><![CDATA[$P{ParameterMainReport}]]></subreportParameterExpression> 
      </subreportParameter> 
      <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
      <returnValue subreportVariable="metrics.LINES_OF_CODE_1" toVariable="metrics.LINES_OF_CODE_1"/> 
      <returnValue subreportVariable="metrics.MAINTAINABILITY_1" toVariable="metrics.MAINTAINABILITY_1"/> 
      <subreportExpression><![CDATA["repo:report7_subreport1.jrxml"]]></subreportExpression> 
     </subreport> 
     <textField pattern="#,##0.00" isBlankWhenNull="true"> 
      <reportElement uuid="d81f0296-7dff-4cdc-9d48-ec477154fc0e" x="175" y="1" width="100" height="20" isRemoveLineWhenBlank="true"/> 
      <textElement textAlignment="Right"/> 
      <textFieldExpression><![CDATA[$F{productivityAndProcessMetrics.operationalCost.overallCost}]]></textFieldExpression> 
     </textField> 
     <textField> 
      <reportElement uuid="4c995889-51aa-42db-8e44-ef169372330c" x="525" y="1" width="100" height="20"/> 
      <textElement/> 
      <textFieldExpression><![CDATA[$V{metrics.LINES_OF_CODE_1}]]></textFieldExpression> 
     </textField> 
     <textField> 
      <reportElement uuid="fb61c381-1862-4817-a7ad-23f24d142e6a" x="625" y="1" width="100" height="20"/> 
      <textElement/> 
      <textFieldExpression><![CDATA[$V{metrics.MAINTAINABILITY_1}]]></textFieldExpression> 
      </textField> 
     </band> 
    </detail> 
</jasperReport> 

Sub报表

<?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="report7_subreport1" language="groovy" pageWidth="250" pageHeight="802" columnWidth="250" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="3ec7fa69-029a-4882-8308-8496807fe30d"> 
    <property name="ireport.jasperserver.reportUnit" value="/SAW/Database/report7"/> 
    <property name="ireport.jasperserver.url" value="http://172.16.230.131:8081/jasperserver/services/repository"/> 
    <parameter name="ParameterSubReport" class="java.lang.String"/> 
    <parameter name="SystemID" class="java.lang.String"> 
     <parameterDescription><![CDATA[]]></parameterDescription> 
    </parameter> 
    <queryString language="MongoDbQuery"> 
     <![CDATA[{ 
    'collectionName':'systemMetrics', 
    'findQueryRegEx':{lang:'/^ALL_LANGUAGES_AGGREGATE/' ,sysID:'/^$P!{SystemID}/'} 
}]]></queryString> 
    <field name="metrics.LINES_OF_CODE" class="java.lang.Double"/> 
    <field name="metrics.MAINTAINABILITY" class="java.lang.Double"/> 
    <field name="sysID" class="java.lang.String"/> 
    <variable name="metrics.LINES_OF_CODE_1" class="java.lang.Double" resetType="None"> 
     <variableExpression><![CDATA[$F{metrics.LINES_OF_CODE}]]></variableExpression> 
    </variable> 
    <variable name="metrics.MAINTAINABILITY_1" class="java.lang.Double" resetType="None"> 
     <variableExpression><![CDATA[$F{metrics.MAINTAINABILITY}]]></variableExpression> 
    </variable> 
    <background> 
     <band splitType="Stretch"/> 
    </background> 
    <summary> 
     <band height="20"> 
      <textField pattern="#,##0.00" isBlankWhenNull="true"> 
       <reportElement uuid="48938680-a5b7-4d16-b3e0-79e02a43336c" x="0" y="0" width="125" height="20"/> 
       <textElement textAlignment="Right"/> 
       <textFieldExpression><![CDATA[$V{metrics.LINES_OF_CODE_1}]]></textFieldExpression> 
      </textField> 
      <textField pattern="#,##0.00" isBlankWhenNull="true"> 
       <reportElement uuid="59f69b58-fd5c-44a8-abdd-410e30d48627" x="125" y="0" width="125" height="20"/> 
       <textElement textAlignment="Right"/> 
       <textFieldExpression><![CDATA[$V{metrics.MAINTAINABILITY_1}]]></textFieldExpression> 
      </textField> 
     </band> 
    </summary> 
</jasperReport> 

我在做什么错?任何输入都会有帮助。

+0

[从子端口到主报表的返回值为空]的可能重复(http://stackoverflow.com/questions/19384421/returned-value-from-subeport-to-main-report-is-null) – 2016-09-30 16:14:47

回答

0

我通过在调用我的输出变量的字段上将评估时间从“Now”设置为“Auto”来解决这个问题。

0

对于人谁也改变不了的评估时间(因为他们焕的变量作为参数传递到另一个子报表的为例):

不要使用变量returnes在同一频带比报表本人!

做作做我觉得在乐队的渲染结束...

所以-​​--->“添加另一个带”和内部使用的变量;)

希望这可以帮助,我花了几个小时发现这一点!

相关问题