1

Crystal ReportsXIR2を使用しています。

私のテーブルには、日付ごとのトランザクションデータがあります。日ごとにグループを設定し、1日のトランザクション数を示す要約を作成しました。また、各日の年初来のカウントを与えるための現在の合計セットもあります。もちろん、年の変更でリセットされます。

私の目標は、昨日の年初来のカウントと昨年の同じ日付の年初来のカウントの違いを見つけることができるようにすることです。

編集:私は目標を間違えました。昨日の違いを見つけることはできませんが、さまざまな日の毎日の違いを見つけることができます。

4

2 に答える 2

0

次の2つの数式フィールドを作成します。

//{@LastYearToDate}
If {table.dateField} IN LastYearYTD Then
  1
Else
  0

//{@ThisYearToDate}
If {table.dateField} IN YearToDate Then
  1
Else
  0

ReportFooterセクションの各フィールドに要約を挿入します。

于 2012-04-19T02:38:41.137 に答える
0

私はついにこれを釘付けにしました。これを行うためのよりクリーンな方法がある可能性がありますが...。

日付(テキストyyyy-mm-ddで開始)をテキストmm / dd/yyyy形式に変換しました。

stringvar yyyyear := {table.dateField}[1 to 4]; 
stringvar mmonth := {table.dateField}[6 to 7];;
stringvar dday := {table.dateField}[9 to 10];

mmonth + "/" + dday + "/" + yyyyear

このフィールドでグループ化され、カウントの要約がグループヘッダーに挿入されました。各日付のmm/dd部分に個別のフィールドを作成しました。

{@textDate}[1 to 5]

現在のグループヘッダーの日付が前の日付と一致するかどうかを確認するフラグを追加しました。

if previous({@mm/dd}) = {@mm/dd}
    then 1
else 0

共有変数を使用して、各年のYTD合計を格納しました(2つの数式)。

shared numbervar totalsCurentYear;

if {@prevDateFlag} = 1 then 
    totalsCurrentYear := totalsCurrentYear + Sum ({@transactionCount}, {@textDate});

totalsCurrentYear

|

shared numbervar totalsLastYear;

if {@prevDateFlag} = 1 then 
    totalsLastYear := totalsLastYear + Sum ({@transactionCount}, {@textDate});

totalsLastYear    

これらの両方をグループフッター(抑制)に入れ、グループヘッダーへの減算を行うためのフィールドを追加しました。

于 2012-04-20T13:15:21.310 に答える