C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

クリスタルレポートのページ区切り情報取得方法


(過去ログ 4 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■4437 / inTopicNo.1)  クリスタルレポートのページ区切り情報取得方法
  
□投稿者/ t16 二等兵(1回)-(2006/06/21(Wed) 11:26:41)

分類:[VB.NET] 


分類:[VB.NET] 

初めて投稿します、t16です。

WindowsXPSP2
VS2003(VB)
Crystal Reports for Visual Studio .NET AAP5G-JS00000-U7000B4

クリスタルレポートで、詳細セクションに配置した項目のデータ数が、1ペー
ジ出力できる個数以上になると、改ページされます。このとき、各ページの先
頭のデータ、または最終のデータを取得するにはどのようにしたらよいでしょ
うか?


<rptファイルイメージ>

-------------------+---------+
(ページヘッダー) | メ モ | ←ラベル
------------------+----------+
(詳細)      | メ モ | ←DBフィールド (複数行に出力)
------------------+----------+


上記のような場合です。
DB「メモ」フィールドは改行されてたりするので、「複数行に出力」にチェッ
クを入れてあります。そのため、1ページ当りの出力行数は固定できません。

OnFirstRecordでは、各ページの先頭行は取得できません。
一つ前(又は後)のレコードのPageNumberと、現在の行のPageNumberを比較で
きればと思うのですが、やり方がわかりません。

どなたかわかる方がいらっしゃいましたら、教えて下さい。
よろしくお願いします。


0
引用返信 編集キー/
■4438 / inTopicNo.2)  Re[1]: クリスタルレポートのページ区切り情報取得方法
□投稿者/ じゃんぬ @ 管理人 大佐(221回)-(2006/06/21(Wed) 11:45:21)
じゃんぬ @ 管理人 さんの Web サイト

分類:[VB.NET] 

t16 さん、こんにちは。
掲示板のご利用ありがとうございます。

No4437に返信(t16さんの記事)
> クリスタルレポートで、詳細セクションに配置した項目のデータ数が、1ペー
> ジ出力できる個数以上になると、改ページされます。このとき、各ページの先
> 頭のデータ、または最終のデータを取得するにはどのようにしたらよいでしょうか?

どの時点で知りたいのでしょうか?
たとえば、式フィールドを使えば、セクションが変わろうとするタイミングでなら知ることができます。

それより前のタイミングでは不可能です。
なぜなら、ドライバによって結果が変わってしまうので、出力してみないと何ともならないわけです。

> 上記のような場合です。
> DB「メモ」フィールドは改行されてたりするので、「複数行に出力」にチェッ
> クを入れてあります。そのため、1ページ当りの出力行数は固定できません。

なるほど、固定行にしたいが、オーバーレイやアンダーレイが使えない状況なのですね。
これは仕様を見直した方が良いような気がします。

行は可変でも良いのですが、1 行あたりの情報が可変となると難しいです。

> OnFirstRecordでは、各ページの先頭行は取得できません。
> 一つ前(又は後)のレコードのPageNumberと、現在の行のPageNumberを比較で
> きればと思うのですが、やり方がわかりません。

ひとつ以上前であれば、取得することはできますが、
出力されていない段階で取得する方法は一切ありません。

0
引用返信 編集キー/
■4441 / inTopicNo.3)  Re[2]: クリスタルレポートのページ区切り情報取得方法
□投稿者/ t16 二等兵(2回)-(2006/06/21(Wed) 12:32:27)

分類:[VB.NET] 

じゃんぬさん初めまして。

と言っても、いつもいたるところでじゃんぬさんの記事を参考させて頂いて
ます(^^;。早速のご回答ありがとうございます。

> どの時点で知りたいのでしょうか?
> たとえば、式フィールドを使えば、セクションが変わろうとするタイミングでなら知ることができます。

レポートビューワに表示させる時点です。書式の条件にしたいので。
例えば、ページの先頭行なら文字の色を赤にする、とかです。


> それより前のタイミングでは不可能です。
> なぜなら、ドライバによって結果が変わってしまうので、出力してみないと何ともならないわけです。

ドライバとは、プリンタドライバのことでよろしいですか?
プリンタによって出力できる範囲が違うから、1ページに出力できる行数も
違う。だから出力してみないとわからない。ということですよね。


> ひとつ以上前であれば、取得することはできますが、
> 出力されていない段階で取得する方法は一切ありません。

一つ前のレコードのページ番号の取得はできるのですか!
PreviousValueであればフィールドの指定が必要なので、やり方が分かりませんでした。
なにか良い方法がありましたら教えて下さい。


0
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -