サブレポートのデータソースとして JRBeanCollectionDataSource を使用しています。リスト内の各レコードには、null または null 以外の値を持つ要素が含まれています。これは私の POJO です。
public class PayslipDtl {
private String earningSalaryHeadName;
private double earningSalaryHeadAmount;
private String deductionSalaryHeadName;
private double deductionSalaryHeadAmount;
String type;
public PayslipDtl(String salaryHeadName,
double salaryHeadAmount, String type) {
if(type.equalsIgnoreCase("Earning")) {
earningSalaryHeadName = salaryHeadName;
earningSalaryHeadAmount = salaryHeadAmount;
} else {
deductionSalaryHeadName = salaryHeadAmount;
deductionSalaryHeadAmount = salaryHeadAmount;
}
}
//getters and setters
}
「タイプ」に基づいて、リストは次のように取り込まれます: {"Basic", 4755, null, 0.0}, {"HRA", 300, null, 0.0}, {null, 0.0, "Employee PF", 925} 、{"医療手当"、900、null、0.0}など...
isBlankWhenNull を true に設定し、"Print when" 式を使用すると、レコードは次のように表示されます。
|Earning |Amount|Deduction |Amount|
--------------------|------|---------------------|------|
| Basic | 4755 | | |
| HRA | 300 | | |
| | | Employee PF | 925 |
| Medical Allowance | 900 | | |
| Fuel Reimbursement| 350 | | |
| | | Loan | 1000 |
---------------------------------------------------------
私はそれを次のように表示したい:
|Earning |Amount|Deduction |Amount|
--------------------|------|---------------------|------|
| Basic | 4755 | Employee PF | 925 |
| HRA | 300 | Loan | 1000 |
| Medical Allowance | 900 | | |
| Fuel Reimbursement| 350 | | |
---------------------------------------------------------
isRemoveLineWhenBlank を true に設定しても機能しません。空白なのは行全体ではなく、行の要素のサブセットのみが null であるためです。
ジャスパーで可能ですか?
互換性が JasperReports3.5.1 に設定された iReport Designer 5.0.1 を使用しています。