DOBON.NET DOBON.NETプログラミング掲示板過去ログ

[ActiveReport]改ページの自己制御

環境/言語:[WindowsXP,C#.NET]
分類:[ASP.NET]

初めて質問させて頂きます。

ActiveReportにて、改ページの自己制御を行っています。

他の掲示版で、下記のような例がありましたので、
使用しています。

例----------------------------------------ST
Detail_Formatなどに記述。
RowNumber++;
if (RowNumber < 10)
{
this.Detail.NewPage = NewPage.None;
}
else
{
this.Detail.NewPage = NewPage.After;
RowNumber = 1;
}
例----------------------------------------ED

このままですと、グループフッターが改ページされて
次ページに出力されてしまいます。
その為、条件の10を11に変更し、
NewPage.AfterをNewPage.Beforeに変更しました。

すると、ASPNET_wp.exeのCPU使用率があがり、
戻ってこなくなります。
なぜ、戻ってこなくなるのかがわかりません。

デバッグすると、
NewPage.Beforeの処理後、Detail_Formatから抜けたタイミングで
戻ってこなくなります。

何か、ご存知の方がいらっしゃいましたら
レスお願いします。
ヒントでも結構です。
宜しくお願いします。
■No19125に返信(初心者さんの記事)
> 他の掲示版で、下記のような例がありましたので、
> 使用しています。
>
> 例----------------------------------------ST
> Detail_Formatなどに記述。
> RowNumber++;
> if (RowNumber < 10)
> {
> this.Detail.NewPage = NewPage.None;
> }
> else
> {
> this.Detail.NewPage = NewPage.After;
> RowNumber = 1;
> }
> 例----------------------------------------ED

見覚えのあるコードですね。(;^-^)

> このままですと、グループフッターが改ページされて次ページに出力されてしまいます。

早い話が、グループ フッタまで待ってあげれば良いです。
■No19127に返信(じゃんぬねっとさんの記事)
> ■No19125に返信(初心者さんの記事)
> 早い話が、グループ フッタまで待ってあげれば良いです。

さっそくのレス、ありがとうございます。

説明不足ですいません。

前回のスレに載せたコードを使用する前までの状態ですと
・明細数が1ページ内でちょうど入りきる場合に
 グループフッターを出力する余白がない為、
 グループフッターが次ページに出力されます。

この現象を回避する為、
1ページ内の出力可能明細数を制限しようと思い、
該当のコードを挿入しました。

グループフッターは、通常の出力を行っています。
グループキーが変わる毎に、出力するようになっていますので、
毎ページに出力されるわけではありません。

「じゃんぬねっと」さんの方法では、
グループフッターが出力されたタイミングで、
改ページ制御をすればいい。
と読み取りました。

先にも書きました通り、
毎ページにグループフッターが出力されない為、解決できません。

考え方、読み取り内容が、間違っている場合は、
ご教授くださればと思います。
■No19128に返信(初心者さんの記事)
> 前回のスレに載せたコードを使用する前までの状態ですと
> ・明細数が1ページ内でちょうど入りきる場合に
>  グループフッターを出力する余白がない為、
>  グループフッターが次ページに出力されます。
>
> この現象を回避する為、
> 1ページ内の出力可能明細数を制限しようと思い、
> 該当のコードを挿入しました。

あのコードは、この現象を回避するために入れるものじゃないと思いますが...
納まっていないものは次のページに印刷されるのは当たり前のことで、納めてしまうというのが、適切な解決策です。

セクションごと、アンダーレイ / オーバーレイすればお望みのことはできそうです。

それとも、まだ私に読み取れていない部分があるのでしょうか?
■No19129に返信(じゃんぬねっとさんの記事)
> ■No19128に返信(初心者さんの記事)
> あのコードは、この現象を回避するために入れるものじゃないと思いますが...
> 納まっていないものは次のページに印刷されるのは当たり前のことで、納めてしまうというのが、適切な解決策です。

レス、ありがとうございます。

まだ書き足りていませんでした。
すいません。

次ページにフッターのみが出力されるのを防ぐのが目的で、
その為に、明細数を制限し、最初からフッター分を確保しておこう
というのが、回避策です。
よって、あのコードが必要でした。

結果として、改ページされたページには、
下にフッター分の余白が出来てしまいますが、
それでも、次ページにフッターのみが出力されるのを防ぎたいのです。
「書き込みのマナーについて」で説明されているように、この掲示板では匿名でのご投稿はルール違反となります。「初心者」というお名前も匿名とみなされます。これからは匿名ではないお名前でご投稿いただけますように、よろしくお願いいたします。

また、「書き込みのマナーについて」を一度お読みいただけますように、よろしくお願いいたします。

http://dobon.net/vb/bbs/index.html

DOBON.NET | プログラミング道 | プログラミング掲示板