1

私は何日も答えを探していたので、ここでこのトピックに光を当てられることを願っています. 私は非常に長い間 Crystal レポートを扱っていないので、できるだけ詳しく説明します。

VB.net (2005) を使用してクリスタル レポートを生成しています。Crystal レポートは、データベース内に作成したビューを使用しました。すべてのデータにアクセスし、値を正しく表示できます。

レポートに、識別子フィールドでグループ化されたグループがあります。また、'Passed' というタイトルのブール フィールドもあり、これは、その特定の識別子を持つボードがテストに合格したか失敗したかを反映して、true または false のいずれかになります。

例として、次のような識別子を持つボードがあるとしますxxxxxx。3 つの true と 3 つの false の 6 つのレコードがあります (3 回合格し、3 回失敗したことを意味します)。グループ ヘッダーにボード テスト履歴の合計を入力するように求められました。テストに合格した回数と失敗した回数の詳細が示されています。

  • 現在の合計を保持することを検討しましたが、現在の合計はレコードが評価された後にのみ正しく表示されるため、正しくありません (ヘッダーが印刷されるまでレコードは評価されません)。
  • 変数が詳細セクションでインクリメントされ、グループフッターでリセットされ、グループヘッダーに表示される、共有変数またはグローバル変数のルートを試してみました。これにより正しい値が生成される可能性がありますが、現在のグループではなく、次のグループの先頭に出力されます。
  • Count 式も使用してみましたが、必要な方法で条件付きにする方法については何も見つかりませんでした。
  • サブレポートで行うこともできますが、もっと良い方法があると思います。

サブレポートを使用せずにこれを達成できる方法のアイデアや少なくともヒントはありますか?

4

2 に答える 2

0

詳細セクションに式を 1 つ追加し、その式で共有変数を定義します。成功した識別子の数を 1 つの共有変数に割り当て、失敗した識別子を他の共有変数に割り当てます。

グループ ヘッダーに 2 つの式 (1 つは合格、もう 1 つは不合格) を追加し、コードの下に配置します。

shared numbervar num;

num;

ここで、num は共有変数名の例であることに注意してください。詳細セクションに記載されている共有変数名に置き換える必要があります。

グループ フッターに別の 2 つの数式を追加し、共有変数の値を 0 に設定します。

これが役立つことを願っています。

于 2013-09-24T07:19:00.650 に答える