0

だから私はビジュアルスタジオのクリスタルレポートで数式を合計しようとしていますが、グループレベルのみです。

Contract と Ancillary_Charge の 1 対多の関係があります。Contract.Cost を合計しようとしていますが、各 ancillary_charge も表示しています。そのため、CONTRACT.ID をグループとして設定し、各付帯料金を詳細として設定しました。

以下は、 ChargePrice の私の式です

if ({@IsZero} or {@ShowPrice} = false) then 0 else {CONTRACT.CONTRACT_COST}

IsZero の式

({PAYMENT_TYPE.ID} = 1) and IsNull({CHARGE_STATUS.PAYMENT_STATUS});

ShowPrice の数式は、グループ レベルであるかどうかを判断し、true または false を返します。

Global booleanvar thingy;
Global booleanvar otherthingy;

if (isNull({@Previous}) and thingy = false) then
  thingy := true
else
  thingy := false;

if otherthingy then
  thingy := true;
otherthingy := false;

if (isNull({@Previous}) = false and next({CONTRACT.ID})<>{CONTRACT.ID}) then
  otherthingy := true;

thingy

ChargePrice を合計しようとすると、「このフィールドは集計できません」と表示されます。

なんで?それ以外の場合は、私がやろうとしていることを行うことができます。つまり、合計に追加するだけです

4

1 に答える 1

1

Crystal に合計を行わせる代わりに、自分で行ってください。

2 つの追加式を作成する

fmlReset

Global NumberVar Total;
Total:=0;

fmlDisplay

Global NumberVar Total;
Total

請求価格式を次のように変更します

Global NumberVar Total;
if ({@IsZero} or {@ShowPrice} = false) then 
0;
else 
Total:=Total+{CONTRACT.CONTRACT_COST};

fmlReset をページ レポート ヘッダーに配置するか、合計をリセットしたいときはいつでも配置します。合計を表示する場所に fmlDisplay を配置します。

于 2012-12-20T22:57:18.227 に答える