- PR -

ActiveReportでのグループ印字

投稿者投稿内容
にゃー
常連さん
会議室デビュー日: 2008/06/26
投稿数: 32
投稿日時: 2008-12-23 07:10
いつもお世話になっております。
また、楽しく拝見させていただいております。
ActiveReportsで躓き、調べてみても情報がわからなかったため、
ヒントやアドバイスをいただければと思い投稿します。

レコード移動が複雑なため、DataFieldを使用せず、
Textbox.valueに値を直接代入することで対応しようとしている帳票があります。
このような帳票において、グループヘッダを任意のタイミングで印字することは
できるのでしょうか?

例:レポート
----------------------------
グループヘッダ
----------------------------
Detail (明細)
-----------------------------

キーブレイクしたタイミングで、何か呼び出したりフラグを立てることで、
グループヘッダを印刷するような状況をつくれればよいのですが。

うまく文章で説明できていないかもしれませんが…
よろしくお願いいたします。
nakaP
大ベテラン
会議室デビュー日: 2005/09/27
投稿数: 138
お住まい・勤務地: 高知
投稿日時: 2008-12-23 08:38
任意のタイミングというのが少し不透明ですが、アンバウンドレポートでご希望のことはできないでしょうか?

<追記>
何か読み間違えてるかも・・・。
ダミーの値をグループヘッダのDataFieldに設定し、出力したいタイミングでカウントアップさせてみるとか。

[ メッセージ編集済み 編集者: nakaP 編集日時 2008-12-23 15:55 ]
にゃー
常連さん
会議室デビュー日: 2008/06/26
投稿数: 32
投稿日時: 2008-12-25 09:27
nakaPさん、返答ありがとうございます。

>ダミーの値をグループヘッダのDataField
案を頂き考えてみたのですが、あとから確認したときにわかりづらい
状況となってしまいそうですので、やめておこうかとおもいます。

コード:

やりたいことを、例で示すと…
1.4店舗あるスーパーで、店舗ごとに帳票を出したいとします。(店舗ごとに改ページ)

2.商品が複数ある場合、(塩(10g)、塩(20g)、塩(30g)など)
以下のように、グループの先頭のみ品名を出し、各明細が横に続きます。

塩 10g  100円
20g 190円
30g 280円
砂糖10g 80円
20g 150円

3.1ページごとに2部の印刷が必要で、一部目は(商品名 塩)に対し、
  2分目は(品名 塩)であるというようにラベルが変更される必要があります。

上記のことは、1度の印刷により実行される必要があります。



考えた結果、データフィールドを使用せずに一つ一つ代入するのであれば、
グループヘッダは使わずに、コードによる作り込みをするのがよいかと思っています。
(デザインの作り直しとなったとしても、このほうがきれいにできるかと思ってます)
何かよい案があれば、教えていただけると幸いです。

上記は、簡易的に考えた架空の例ですので、
実際には、グループごとに印字したい内容や明細内容は1,2個ではありません。

[ メッセージ編集済み 編集者: にゃー 編集日時 2008-12-25 09:30 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-12-25 11:18
引用:

にゃーさんの書き込み (2008-12-25 09:27) より:

2.商品が複数ある場合、(塩(10g)、塩(20g)、塩(30g)など)
以下のように、グループの先頭のみ品名を出し、各明細が横に続きます。


これはオーバーレイを使えば普通にできますよね。

引用:

3.1ページごとに2部の印刷が必要で、一部目は(商品名 塩)に対し、
  2分目は(品名 塩)であるというようにラベルが変更される必要があります。


これは商品名にあたるグループ ヘッダを毎ページ出力する設定にするだけですよね。

以上により、ダミーを使うだとかひとつひとつ代入する必要はないと思います。 読み違えていたら申し訳ありません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
nakaP
大ベテラン
会議室デビュー日: 2005/09/27
投稿数: 138
お住まい・勤務地: 高知
投稿日時: 2008-12-25 11:25
1,2に関しては、UnderlayNextやNewPageプロパティを使用すればできると思います。

3に関しては、例でのように簡単なものであればこちらのページが参考になるかもしれません。
http://www.grapecity.com/Japan/Support/Search/FaqContent.asp?id=11770
COM版(VB6)のサンプルですが、考え方は参考になるかと思います。
複数のレポートを作り、それを1つのレポートに交互に追加し、最終的に1つのレポートとするというものです。
にゃー
常連さん
会議室デビュー日: 2008/06/26
投稿数: 32
投稿日時: 2008-12-25 12:39
じゃんぬねっとさん、nakaPさん、返答ありがとうございます。

説明足らずですみません。

1、2に関しては、ActiveReportのサンプルを元に、
現状うまく動作しているものとなります。

問題は3にあたる処理となっています。
1ページ目を2部印刷したのち、2ページ目を2部印刷する必要があり、
この2部という考えが本店提出用、支店保管用と考えてください。
同じ項目を印字していても、場所により呼び名が違うため、
ラベル名だけが変更されて同じ帳票を出すという作業が発生します。

>グループ ヘッダを毎ページ出力する設定にするだけ
そのため、この対応とは異なってきます。

>VB6のサンプル
こちらについては、これから見させていただこうと思ってます。





[ メッセージ編集済み 編集者: にゃー 編集日時 2008-12-25 12:45 ]
にゃー
常連さん
会議室デビュー日: 2008/06/26
投稿数: 32
投稿日時: 2008-12-25 13:41
VB6の環境がないため、同様の記事を検索してみた結果、以下を確認しました。
http://www.grapecity.com/Japan/Support/Search/FaqContent.asp?id=24030
(文面からの推測ですが、同様なものであると思っています。)

全て印刷した後にページを追加するサンプルとなっていますので、
HPに書いてあるようにして、交互に出すことが可能なのかを検証してみます。

# スレの件名がJaroに訴えられそうなくらい、嘘偽りな方向へ…。


[ メッセージ編集済み 編集者: にゃー 編集日時 2008-12-25 13:53 ]
にゃー
常連さん
会議室デビュー日: 2008/06/26
投稿数: 32
投稿日時: 2008-12-25 15:16
連続投稿となってしまい…すみません。

当初の質問とは異なる解決方法となりましたが、
レポートのマージを使うことで行いたいことは解決しました。
この機能を使うと、いろいろな要件が一気に解決しそうです。

書き込んでくださった皆さん、考えてくださった皆さん
ありがとうございました。

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