0

Crystal 2008 で For ループを使用して、資産の経過年数に基づいて非常に基本的な減価償却計算を実行しようとしていますが、一生うまくいきません。

ループは次のようになります。

NumberVar AssetValue := {CIID.Currency4};
NumberVar DepreciationPercentage := {vw_DepreciationValues.Percent};
NumberVar AssetAge := DateDiff("yyyy",{CIID.Date4},CurrentDate);
Numbervar i := 0;

for i := 0 to AssetAge do
(
    AssetValue = AssetValue - ((AssetValue/100)*DepreciationPercentage);
    i = i + 1;
);
AssetValue;

何らかの理由で、常に AssetValue を入力したのと同じ数値として出力します....実行後にリセットされるのとほぼ同じです。

ループの外で減価償却の計算式をテストしましたが、うまくいきました。また、i カウンターがループによって適切にインクリメントされていることも確認しました。

私がどこで間違っているのか、誰にも手がかりがありますか?プライベート変数を使用してカスタム関数を作成しようとしましたが、違いはありませんでした。

前もって感謝します!

4

1 に答える 1

3

タイプミス:

AssetValue = AssetValue - ((AssetValue/100)*DepreciationPercentage);
           ^--- equality test
i = i + 1
  ^-- ditto

:=課題を行うことです。

于 2012-04-04T16:38:55.273 に答える