- PR -

クリスタルレポートの改ページについて

1
投稿者投稿内容
いなば
会議室デビュー日: 2007/09/20
投稿数: 14
投稿日時: 2007-11-08 11:25
よろしくお願いします。

クリスタルレポートで改ページされたかどうかを判断したいのですが
どのようにすればよろしいでしょうか。

現状:
1ページ目
詳細---------------------------
2007/11/01 あああああ
      いいいいい
2007/11/02 ううううう
      えええええ
      おおおおお

2ページ目
詳細---------------------------
      かかかかか
      ききききき
2007/11/03 くくくくく
      けけけけけ
      こここここ


希望:
1ページ目
詳細---------------------------
2007/11/01 あああああ
      いいいいい
2007/11/02 ううううう
      えええええ
      おおおおお

2ページ目
詳細---------------------------
2007/11/02 かかかかか
      ききききき
2007/11/03 くくくくく
      けけけけけ
      こここここ


上記のようにデータを出力しています。
同じ日付であれば、日付のフィールドを非表示にしていますが
データ件数が多いと改ページされます。
そのとき、前ページのデータと同じ日付だった場合
非表示になってしまいます。
改ページされた場合、前ページのデータと同じ日付でも
一行目だけは日付を表示したいのです。

説明がわかりづらいとは思いますが
教えてください。
よろしくお願いいたします。



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

いなばさんの書き込み (2007-11-08 11:25) より:

クリスタルレポートで改ページされたかどうかを判断したいのですが


状況判断関数に存在しない場合は、式フィールドに Global/Shared な Flag を設けて自分で機構を作るしかないですね。 判断を開始したい位置で Flag を寝かせるようにしておいて、ページ フッタでその Flag を立てます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
NZ-000
会議室デビュー日: 2005/10/31
投稿数: 7
投稿日時: 2007-11-08 16:27
横槍すいません。

>判断を開始したい位置で Flag を寝かせるようにしておいて、ページ フッタでその Flag を立てます。
~~~~~~~~~~~~~~~~~~~~

その位置でFlagを寝かせると判断に使うFlagが常に寝てしまうので、判断するセクションより一つ下のセクションで寝かせた方がいいですね。
もし下のセクションがないならダミー的なグループを作るという手があります。

ただ、このケースの場合、日付でグループ化して、そのグループのオプションで「ページごとにグループヘッダーを出力」するようにすれば解決しそうな気がします。

#レコードごとに日付を出力する必要はなくなりますが、日付でグループ化するとまずい場合は少し応用が必要になりますね。まぁその辺は臨機応変に。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-11-08 16:49
引用:

NZ-000さんの書き込み (2007-11-08 16:27) より:

その位置でFlagを寝かせると判断に使うFlagが常に寝てしまうので、判断するセクションより一つ下のセクションで寝かせた方がいいですね。


同一式フィールドでの実装しか想定していませんでした。 確かにまずいですね。

引用:

ただ、このケースの場合、日付でグループ化して、そのグループのオプションで「ページごとにグループヘッダーを出力」するようにすれば解決しそうな気がします。


正直に告白します。 下の方はまったく読んでいませんでした。orz

今さら読んで少し思ったのですが、質問者さんはすでに日付でグループ化はしているかもしれませんね。 レイアウトを見る限りですが、グループ ヘッダでアンダーレイしているように見えます。 もし DataSource で直に日付ありと日付ブランクとで保持していたらちょっとした作業になりますね。(笑)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
いなば
会議室デビュー日: 2007/09/20
投稿数: 14
投稿日時: 2007-11-08 18:13
返答が遅くなりまして、申し訳ありません。

質問の内容が足りなかったようです。

ページヘッダ----------------------
タイトル
グループヘッダ 大分類コード------
大分類名
詳細------------------------------
日付   小分類コード    金額
グループフッタ 大分類コード------
累計
ページフッタ----------------------

レイアウトは、上記のように作っています。
大分類にひもづく小分類の一覧を作っています。
日付のNULLは
非表示の式に、一つ前のデータと同じ日付であれば
非表示にするとしています。
小分類が1ページに収まらない場合に
2ページ目の日付が非表示になっています(日付が同じ場合)

フラグも考えてやってみたのですが、
式の書き方が悪いのか、全部表示されないか
全部表示されてしまいます。

ご指導の程、よろしくお願いいたします。

再度、フラグで挑戦してみます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-11-08 18:33
それならば NZ-000 さんの仰るとおりの方法がよろしいでしょう。 日付グループ ヘッダに日付を配置してアンダーレイするだけで解決でしょう。 日付の NULL 制御と仰っているのもやる必要はありません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
いなば
会議室デビュー日: 2007/09/20
投稿数: 14
投稿日時: 2007-11-13 11:13
返答が遅くなりまして、申し訳ありませんでした。
教えていただいた方法で、うまく出来ました。

じゃんぬねっと様、NZ-000様
ありがとうございました。
1

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