1

List<DenominationDataEntity>Crystal レポートに追加された同じタイプの 2 つのビジネス オブジェクトがあります。1. 受け取ったデノミネーション 2. 支払われたデノミネーション。

両方のリストの値を表示する必要があり、次に両方のリストのフィールドの値を減算する必要があります。
たとえば。との両方ReceivedDenominationPaidDenominationフィー​​ルドがあり、 とThousandの値を減算する必要がReceivedDenomination.Thousandあり PaidDenomination.Thousandます。次のコードで数式フィールドを作成しました。

Global numberVar TotalThousand :=0;

(if IsNull({ReceivedDenomination.Thousand}) then
     TotalThousand
else
     TotalThousand := ToNumber({ReceivedDenomination.Thousand})
);

(if IsNull({PaidDenomination.Thousand}) then
    TotalThousand
else
     TotalThousand := TotalThousand + ToNumber({PaidDenomination.Thousand});
);
TotalThousand

私が抱えている問題は、TotalThousandフィールドが間違った答えを返すことです。つまり、もし

ReceivedDenomination.Thousandが 85 でPaidDenomination.Thousandが 2 の場合、83 ではなく 2 になります。

4

1 に答える 1

0

このようにしてみましたか?

Global numberVar TotalThousand :=0;
Global numberVar RcvdThou := 0;
Global numberVar PdThou := 0;

(if IsNull({ReceivedDenomination.Thousand}) then
     TotalThousand
else
     RcvdThou := ToNumber({ReceivedDenomination.Thousand})
);

(if IsNull({PaidDenomination.Thousand}) then
    TotalThousand
else
     PdThou := ToNumber({PaidDenomination.Thousand});
);
TotalThousand := RcvdThou + PdThou;
TotalThousand;

それでも問題が解決しない場合は、式を複数の式に分けて、各フィールドが何を示しているかを確認してください。したがって、TotalThousand、RcvdThou、PdThou、Total 形式があります。TotalThousand はグローバルをインスタンス化し、RcvdThou と PdThou は 2 つの数値を表示し、Total は計算を提供します。

于 2012-10-16T10:37:00.420 に答える