如何解决JasperReport主从报告和子报告
主记录:课程ID,课程名称 详细记录(在子报告中):课程ID(与主记录链接的键),学生ID,学生姓名
输出示例:
Course ID: A001
Course Name: Course A
Student ID Student Name
SA001 David
SA002 Marina
Course ID: B001
Course Name: Course B
Student ID Student Name
SB001 Albert
SB002 Jess
我应该如何设计报告并编写代码?希望有一个想法使用子报表而不是分组来设计这种主从报表。
通过使用传递参数编写用于子报告的sql来举例说明,例如:
select * from Table A where courseID = $P!{courseID}
我的问题是,在运行时会生成主数据报告和详细报告的数据源,例如在我的jsp编码中:
cs = conn.prepareCall( "{call spTestJasperA (?)}" );
cs1 = conn.prepareCall( "{call spTestJasperB (?)}" );
cs.setInt(1,70);
cs1.setInt(1,70);
rs = cs.executeQuery();
rs1 = cs1.executeQuery();
JRDataSource ds = new JRResultSetDataSource(rs);
JRDataSource ds1 = new JRResultSetDataSource(rs1);
Map<String,Object> parameters = new HashMap<String,Object>();
parameters.put("prmDs1",ds1);
ServletContext context = request.getServletContext();
String s = context.getRealPath("/SubRptA.jasper");
File reportFile = new File(s);
byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),parameters,ds);
在Master.jrxml中:
<detail>
<band height="83" splitType="Prevent">
<subreport>
<reportElement x="0" y="20" width="600" height="63" uuid="2ba47ed7-970d-43f8-9338-ca686c86ca18"/>
<subreportParameter name="prmCourseID">
<subreportParameterExpression><![CDATA[$F{courseID}]]></subreportParameterExpression>
</subreportParameter>
<dataSourceExpression><![CDATA[$P{prmDs1}]]></dataSourceExpression>
<subreportExpression><![CDATA["SubRptA_sub.jasper"]]></subreportExpression>
</subreport>
</band>
</detail>
如何将主报表和子报表与运行时数据源链接?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。