goo blog サービス終了のお知らせ 

CHANPON.NET

ソフトウェア設計・開発の備忘録

Groupヘッダ・フッタのTextBoxの値を明細データによって制御したい [ActiveReports]

2009-10-07 21:20:15 | ActiveReports

----------------------------------------------------------
(開発・実行環境)

Microsoft Visual Studio 2005 Tools for Applications

Microsoft Visual Basic 2005

ActiveReports 2.0J Standard

----------------------------------------------------------

 

タイトルの文言では、いまいち何を言いたいかわかりにくい。。。

語彙不足。。。

 

さて、何がしたいかと申しますと。

?明細データを項目の属性別に値を集計するときに、その属性毎にGroupHeader(又はFooter)のTextBoxの文字を変えたいような場合、ですね。

言い換えると、項目の属性別にグルーピングして、グループごと名前の表示を変えたいってことです。

(例えば・・・コーラ、オレンジジュース、お茶・・・飲料合計金額、パン、おにぎり、カップ麺・・・食料品合計金額、みたいな。伝わった?汗)

 

ActiveReportsは、めんどくさい(のか楽チンなのかよくわからない)ことに、データの数だけ勝手にレポートに出力してくれるんですが、各Sectionのデータの出力タイミングがどうにも制御しずらく、Detail SectionのTextBoxのデータをGroupFooter のFormatイベントで引っ張ってきても、データ行が一つズレていたりして、Groupの制御がうまくいかなかったんです。

?なので、色々あーだこーだ試行錯誤した結果、 やっと自分なりに汎用的(?)な解決策が。

 

?制御したいGroupのSectionにTextBoxを置いて、Visible = False とする。

?このTextBoxをInitializeフィールドで、属性のデータを持つDataFieldsにバインドする。

属性TextBoxの値によって行う制御を、各SectionのFormatイベントに記述する。

 

これでどーにか、Group別にうまく制御することができましたとさ。

まぁ気づけばどうってことないんですけどね。。。

 

(今更ですが)文章が下手ですいません。

 

ActiveReports、うだうだ悩むよりガチャガチャイジって、理屈より経験的に覚えようかと思います。




1 コメント(10/1 コメント投稿終了予定)

コメント日が  古い順  |   新しい順
参考になりました (Keiko)
2011-06-24 15:27:56
私もGroupFooterの制御で上手くいかず、同様な現象が起こっていないか探して、ここにたどりつきました。
同じようにしてもうまくいきませんでしたが、ActiveReportsで同様の現象が起こることが分かっただけでも良かったです。
記載に感謝します。
返信する