- PR -

ActiveReportsでグループの制御がしたい

1
投稿者投稿内容
さくら
ベテラン
会議室デビュー日: 2004/02/12
投稿数: 76
投稿日時: 2006-04-11 10:09
OS:WinXP Pro
開発ツール:VS.NET 2003
データベース:Oracle(ODP.NET使用)

現在、下記のようなレポートが作りたいのですが、
どのようにレポートのレイアウトを作成すれば
希望のレポートが作れるか悩んでいます。

1.店ごとの売上伝票明細を出したい
2.改ページ時にはページ計を出したい
3.店が変わるときには店計を出したい
4.店が変わったときは改ページしたい

たとえば大阪店では3枚の売上伝票があり、
2枚目で改ページが発生するような場合、

大阪店(店コード 001)
====================
伝票番号 101
1 こんにゃく 100
2 卵     150
--------------------
伝票計    250
====================
伝票番号 102
1 かまぼこ  200
2 豚肉    360
3 玉ねぎ   180
4 えび    810
--------------------
伝票計    1550
====================
ページ計   1800
(改ページが入る)
====================
伝票番号 103
1 いか    400
2 ねぎ    150
--------------------
伝票計    550
====================
ページ計   550
**********************
店計     2350
(次の店に移る前に改ページ)

店グループヘッダー(店コードがキー。店コードが変われば改ページ。)
 伝票グループヘッダー(伝票番号がキー)
  伝票明細行
    ・
    ・
    ・
 伝票グループフッター(伝票計を表示)
 ここにページフッターが入れればよいのだが…。
店グループフッター(店計を表示)

レポートへの値渡しは、
レポートの各項目へデータベースの列を連結させ、
VB.NET側でSQLを発行し、埋め込んでいるような形です。

どのようにレポートレイアウトを作成すれば
希望のレポートが作れるか皆様のお知恵を貸してください。
どうぞよろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-11 10:25
引用:

さくらさんの書き込み (2006-04-11 10:09) より:

どのようにレポートレイアウトを作成すれば
希望のレポートが作れるか皆様のお知恵を貸してください。
どうぞよろしくお願い致します。


例にあがっているセクション構成で良いと思いますが、何をお悩みなのでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
さくら
ベテラン
会議室デビュー日: 2004/02/12
投稿数: 76
投稿日時: 2006-04-11 10:31
お返事ありがとうございます。

悩んでいる箇所は、
グループヘッダ/フッタの間にページヘッダ/フッタを
入れ込めないため、
最後、店計が出た後にページ計が出てしまう点です。

店計はとにかく一番最後に印字したいので
ページ計、店計という順番にしたいのです。

拙い説明で申し訳ありませんが
よろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-11 10:40
引用:

さくらさんの書き込み (2006-04-11 10:31) より:

悩んでいる箇所は、グループヘッダ/フッタの間にページヘッダ/フッタを入れ込めないため、


ページ フッタは改ページ直前に絶対に出力されると思っていたのですが、
グループ セクションを跨ぐと出力されないものなんですか?

こういう帳票は良く作りますが、そんな動きをしたことがあれば私も覚えてそうなのですが...
セクションに、「まとめて出力」のようなオプションは用意されてないんだったかな。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
さくら
ベテラン
会議室デビュー日: 2004/02/12
投稿数: 76
投稿日時: 2006-04-11 10:49
説明が悪くてすいません。

ページヘッダー
 店グループヘッダー
  伝票グループヘッダー
   明細
  伝票グループフッター
 店グループフッター
ページフッター

とした場合、改ページ時に必ずページフッターは
印字されるのですが、店コードが変わる最後のページは
どうしても店計が出た後にページ計が出てしまいます。
(店グループフッターの方がページフッターよりも
 前にあるため。)

この最後のページを、
ページ計が印字された後に店計が印字されるようにしたいのですが、
そうすると店グループヘッダ/フッタの間に
ページヘッダ/フッタを入れ込まないといけなくなるのですが
それができないため悩んでいます。

何度も申し訳ありませんが
どうぞよろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-11 17:17
引用:

さくらさんの書き込み (2006-04-11 10:49) より:

この最後のページを、ページ計が印字された後に店計が印字されるようにしたいのですが、
そうすると店グループヘッダ/フッタの間にページヘッダ/フッタを入れ込まないといけなくなるのですが
それができないため悩んでいます。


今回のような場合、セクション単位でものを考えると答えが出ません。
セクションを使った自動集計は無理ですので、
自前で集計して、セクションのイベントで出力有無を決定します。

まずは、ActiveReports 内のイベントを眺めてみてください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)