在jaspersoft中创建连续的表

Create consecutive tables in jaspersoft

我正在使用 JasperReports,但找不到创建连续 table 的方法。当第一个填好后,下一个会覆盖而不是移位

以前有人遇到过这个问题吗?

更新

我正在使用带有两个详细信息带和一个 table 到每个详细信息带中的子报表。

至此我生成了父报表的页面,但是子报表区域是空白的。

这是我与报告交互的代码:

try {

    HashMap param = new HashMap();

    JRBeanCollectionDataSource tableA = new JRBeanCollectionDataSource(tableAItems);
    param.put("AtableDatasource", tableA);
    JRBeanCollectionDataSource tableB = new JRBeanCollectionDataSource(tableBItems);
    param.put("BtableDatasource", tableB);
    param.put("tableHeadA","TABLE A HEADER");
    param.put("column1AHead","A COL 1");
    param.put("column2AHead","A COL 2");
    param.put("column3AHead","A COL 3");
    param.put("header","SAMPLE REPORT");
    param.put("theDetails", "THE DETAILS");
    param.put("detail1Label", "DETAIL BAND 1");
    param.put("detail2Label", "DETAIL BAND 2");

    InputStream parent = Main.class.getResourceAsStream("/sample_parent.jasper");
    JasperPrint jpParent = JasperFillManager.fillReport(parent, param, new JREmptyDataSource(1));

    JasperExportManager.exportReportToPdfFile(jpParent, "C:\REPORTS\sampleReport.pdf");


} catch (JRException e) {
    e.printStackTrace();
}

像往常一样,示例代码已上传到下面链接的 GitHub 存储库。

GitHub 回购:https://github.com/MichaelKnight/jaspertest.git

您的直接问题是包含 jr:table 的框架没有 positionType="float",您已将其设置为 jr:table 但您 需要设置它框架).

然而,为了更好地控制和实现您想要的布局(因为您在右侧有 tables),请考虑创建 2 个子报表。

传递给子报表 new JREmptyDataSource(1) 作为数据源以生成 1 个记录详细信息带和您的参数映射,以获取子报表中的参数 $P{B3questionsDatasource} 等。

  1. 子报表,包含图像中的table A、B,要么将它们放在彼此下方,要么使用多个细节带

    <detail>
      <band height="50">
          ... table 1 ....
      </band>
      <band height="50">
          ... table 2 ....
      </band>
    </detail>
    
  2. 子报告,带有 table C 和新的 table D(如上例所示)。

主报表中 包含了彼此相邻的子报表。

例子

<subreport>
   <reportElement x="0" y="20" width="400" height="20" uuid="a7a89ebb-54d4-4b6e-8c9f-c107e8a40bbb"/>
    <parametersMapExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}]]></parametersMapExpression>
    <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource(1)]]></dataSourceExpression>
    <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "subreport1.jasper"]]></subreportExpression>
</subreport>