0

サブレポートのデータソースとして 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 を使用しています。

4

2 に答える 2

0

控除/金額にはリスト コンポーネントを使用します。これを行う方法についてのビデオ チュートリアルがあります。

次に、リスト コンポーネントの控除項目と金額項目には、次のオプションの [空白の場合は空白] と [空白の場合は行を削除] が必要です。

それでも空白行が表示される場合は、両方のフィールドをリスト内のフレームに配置して、フレームのオプションもマークしてみてください。

于 2013-04-19T11:40:01.473 に答える