- PR -

ActiveReportsNETでページフッタの項目の制御方法

1
投稿者投稿内容
LANVIN
大ベテラン
会議室デビュー日: 2007/03/12
投稿数: 211
投稿日時: 2007-06-07 19:41
 こんばんは。

ActiveReportsNETでページフッタにラベルの項目があります。
品番ごとに改ページさせますが
1つの品番で複数ページになる場合
その品番で最後のページだけラベルを印字したいのです。

その他のページはラベルのVisibleをFalseにして
印字しないようにしたいのです。

印字の例としまして

品番 A
11
22
33
44

Page:1

品番 A
55


ラベル印字
Page:2

品番 B
66
77
88

ラベル印字
Page:3

といった具合に
品番Aの1ページだけページフッタの
ラベルを印字しないようにコントロールしたいのです。

ご教授宜しくお願いします。


じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-06-07 20:27
引用:

LANVINさんの書き込み (2007-06-07 19:41) より:

品番Aの1ページだけページフッタのラベルを印字しないようにコントロールしたいのです。


ActiveReports は、柔軟に対応できるように各イベントをもっておりますので、Format や Fetch 系のイベントで判断して頂ければよろしいかと思います。「そんなことすでに試みている」 のであれば、具体的にどこでどうお困りなのか明示してください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
LANVIN
大ベテラン
会議室デビュー日: 2007/03/12
投稿数: 211
投稿日時: 2007-06-10 17:16
じゃんぬねっとさん、ありがとうございます。

このような場合、本来ならグループフッタを使うかと思われますが
訳あってページフッタを使いたいのです。

じゃんぬねっとさんのご指摘の通りFormatかFetchのイベントで
判断するかと思いますが

具体的に品番が変わったら改ページさせますが
品番で複数ページになる場合最後のページだけ
ページフッタの項目のVisibleプロパティをTrueにしたいのですが
どのイベントで品番を変数にセットしたり、どう判断するのかが
どうしても解らず投稿しました。

もちろん品番で1ぺージしかならない場合は
ページフッタの項目のVisibleプロパティはTrueです。

VBからレポートのDatasourceプロパティにデータをセットして
レポートを実行します。

ご教授宜しくお願いします。



LANVIN
大ベテラン
会議室デビュー日: 2007/03/12
投稿数: 211
投稿日時: 2007-06-11 10:55
おはようございます。

「具体的にどこでどうお困りなのか明示してください。 」
について説明不足でしたので付け加えます。

DetailのKeepTogetherをTrueにしているからか
PageFooter_Formatイベントが1番最後に
続けて発生するため1ページごとに
キーブレイクの判断がしづらい点で困っているのです。

Fetch
Fetch
Fetch
Fetch
Fetch  ここでEOF
Pagefooter_Format
Pagefooter_Format
Pagefooter_Format
とイベントが発生します。

Fetch
Fetch
Fetch
Pagefooter_Format
Fetch
Fetch
Pagefooter_Format
と発生すれば途中のPagefooter_Formatで
印字するしないの判断がしやすいのです。

伝わったでしょうか?








じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-06-11 14:34
引用:

LANVINさんの書き込み (2007-06-10 17:16) より:

このような場合、本来ならグループフッタを使うかと思われますが訳あってページフッタを使いたいのです。


ここの "訳あって" にあたる部分について詳しく説明して頂けると助かります。そもそも LANVIN さんを困らせているのはこの仕様に他ならないですから。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
LANVIN
大ベテラン
会議室デビュー日: 2007/03/12
投稿数: 211
投稿日時: 2007-06-11 14:38
 すいません、全てのイベントを調べていたら
グループヘッダにページ/総ページを印字するようにしているのでか

1品番で1ページになる場合
GroupHeader1_BeforePrint
PageFooter_BeforePrint

1品番で2ページになる場合
PageFooter_BeforePrint
GroupHeader1_BeforePrint
GroupHeader1_BeforePrint
PageFooter_BeforePrint

1品番で3ページになる場合
PageFooter_BeforePrint
PageFooter_BeforePrint
GroupHeader1_BeforePrint
GroupHeader1_BeforePrint
GroupHeader1_BeforePrint
PageFooter_BeforePrint

1品番で4ページになる場合
PageFooter_BeforePrint
PageFooter_BeforePrint
PageFooter_BeforePrint
GroupHeader1_BeforePrint
GroupHeader1_BeforePrint
GroupHeader1_BeforePrint
GroupHeader1_BeforePrint
PageFooter_BeforePrint

のように必ず品番別の最後のページは
GroupHeader1_BeforePrintのイベントが発生した後に
なるようです。

それでGroupHeader1_BeforePrintでフラグをたて
PageFooter_BeforePrintでそのフラグがたっていれば
印字するというようなコーディングにしてみましたら
得たい結果が得られましたが
このような手法はいかがなものなのでしょうか?

意見をお聞かせください。
宜しくお願いします。



1

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