在交叉表 jasper-report 中拆分行

spliting rows in crosstab jasper-report

我正在使用 jasper-report,我有这份要生成的报告

我在 java 中创建了一个 class,其中我在列上显示了一个字段 natureIntervention,在行上显示了 atelier,在交叉表中用于计数的数字

public class ChampEtatMaintenanceParNatureIntervention {

    private String natureIntervention;
    private String atelier; 
    private String numero;


}

我要显示的是每一行工作室的车辆类型列表(例如:lourds、legers……)

在每条记录上生成包含行组和列组的交叉表时,您需要所有信息。

在您的报告中看到

  • 2 行组(工作室和车辆类型)
  • 1列组(电机类型)
  • 交叉表列的值

这建议在您的 java 对象(您作为数据源传递)上使用以下吸气剂

public class MyDatasourceClass {    
    public String getAtelier(){.. return ...};
    public String getVehiculeType(){.. return ...};
    public String getMotorType(){.. return ...};
    public String getValue(){.. return ...}; //this maybe is another class
}

您的交叉表组将是

<rowGroup name="atelier" width="150">
    <bucket class="java.lang.String">
        <bucketExpression><![CDATA[$F{atelier}]]></bucketExpression>
    </bucket>
    ... header value....
</rowGroup>

<rowGroup name="vehiculeType" width="150">
    <bucket class="java.lang.String">
        <bucketExpression><![CDATA[$F{vehiculeType}]]></bucketExpression>
    </bucket>
    ... header value....
</rowGroup>

<columnGroup name="motorType" width="150">
    <bucket class="java.lang.String">
        <bucketExpression><![CDATA[$F{motorType}]]></bucketExpression>
    </bucket>
    ... header value....
</columnGroup>