Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Jasper使用SQL查询旁边的模型与父报表和子报表集成_Spring_Jasper Reports_Sql - Fatal编程技术网

Spring Jasper使用SQL查询旁边的模型与父报表和子报表集成

Spring Jasper使用SQL查询旁边的模型与父报表和子报表集成,spring,jasper-reports,sql,Spring,Jasper Reports,Sql,我有两个域代码: public class domain1{ private string domain1Name; private List<domain2> domain2List; /* getter setter */ } public class domain2{ private string domain2Name; /* getter setter */ } 公共类域1{ 私有字符串domain1Name; 私有列表域2列表; /*吸气剂设定器*/ } 公共

我有两个域代码:

public class domain1{

private string domain1Name;
private List<domain2> domain2List;

/* getter setter */
}

public class domain2{

private string domain2Name;

/* getter setter */
}
公共类域1{
私有字符串domain1Name;
私有列表域2列表;
/*吸气剂设定器*/
}
公共类域2{
私有字符串域名;
/*吸气剂设定器*/
}
我有一个Spring控制器返回一个映射,然后通过以下功能将其传递给模型:

@SuppressWarnings("unchecked")
    @RequestMapping("preview")
    public String preview(Model model) { 
            List<Domain1> list = new ArrayList<Domain1>();
            Domain1 d1 = new Domain1();
            Iterator i = someData.iterator(); //<--this function successfully retrieve data, not null guaranted.
        while(i.hasNext()){
              Map.Entry me = (Map.Entry)i.next();
              d1 = (Domain1) me.getValue();
              list.add(d1);
        }

        Map mapz = new HashMap();
        mapz.put("domain1List", list); // first value as Domain1
        mapz.put("domain2List", d1.getDomain2List()); // second value as Domain2
        model.addAllAttributes(mapz);

        return "test_parentreport"; <- jasper bean lookup views from views.xml
    }
@SuppressWarnings(“未选中”)
@请求映射(“预览”)
公共字符串预览(模型){
列表=新的ArrayList();
域1 d1=新域1();
迭代器i=someData.Iterator()//
...
test_subreport.jrxml

...<field name="domain1Name" class="java.lang.String"/><detail><band height="125" splitType="Stretch">
        <textField>
            <reportElement x="0" y="0" width="555" height="51"/>
            <textElement/>
            <textFieldExpression class="java.lang.String"><![CDATA[$F{domain1Name}]]></textFieldExpression>
        </textField>
        <subreport>
            <reportElement positionType="Float" x="0" y="0" width="555" height="125" isPrintWhenDetailOverflows="true"/>
            <subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[$P{test_subreport}]]></subreportExpression>
        </subreport>
    </band>
</detail>...
...<field name="domain2Name" class="java.lang.String"/>
<detail>
    <band height="125" splitType="Stretch">
        <textField>
            <reportElement x="71" y="13" width="100" height="20"/>
            <textElement/>
            <textFieldExpression class="java.lang.String"><![CDATA[$F{domain2Name}]]></textFieldExpression>
        </textField>
    </band>
</detail>
<noData>
    <band height="50">
        <staticText>
            <reportElement x="0" y="0" width="555" height="20"/>
            <textElement textAlignment="Center"/>
            <text><![CDATA[NODATA ]]></text>
        </staticText>
    </band>
</noData>...
。。。
...
我的问题是:

假设Domain1.class只包含一个元素,它会带来一个包含2个元素的列表


-域1您可以通过查看我的Spring3MVC和Jasper教程找到一些线索:

我提供了一个可下载的Maven版本。教程非常详细。此外,应用程序本身也有很好的注释。如果教程对您有帮助,请留下注释:)

...<field name="domain2Name" class="java.lang.String"/>
<detail>
    <band height="125" splitType="Stretch">
        <textField>
            <reportElement x="71" y="13" width="100" height="20"/>
            <textElement/>
            <textFieldExpression class="java.lang.String"><![CDATA[$F{domain2Name}]]></textFieldExpression>
        </textField>
    </band>
</detail>
<noData>
    <band height="50">
        <staticText>
            <reportElement x="0" y="0" width="555" height="20"/>
            <textElement textAlignment="Center"/>
            <text><![CDATA[NODATA ]]></text>
        </staticText>
    </band>
</noData>...