- PR -

Crystal Reports のページフッターについて

1
投稿者投稿内容
山田
常連さん
会議室デビュー日: 2004/11/22
投稿数: 25
投稿日時: 2007-05-09 20:16
お世話になります。
VB.NET2005で開発しております。
Crystal Reportを使用し、帳票を出力しようと思ったところで、躓いております。
詳細セクションのデータにより、複数枚にまたがる可能性のある帳票なのですが
1枚目のみ、下部に大きな空白を作る必要が出ています。(使用者がメモとして使用したい)
そこで、メモ用のページフッターを作成し
フッター非表示の書式に、以下の式を入れています。

WhilePrintingRecords;
//1ページ目
If PageNumber = 1 then
false
//2ページ目以降
else
true

これにより、フッター自体は、2枚目以降、非表示になっている様なのですが
詳細セクションのデータが、フッター領域分、表示出来ていません。
(1枚目はフッターにより10行、2枚目以降はフッターが非表示になるので
11行以上表示出来る領域があるはずだが、2枚目以降も10行しか表示されていない)

どのように制御するべきか
ご存知の方がいらっしゃいましたら、教えて頂けませんでしょうか。
宜しくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-05-09 23:22
1 ページ目の明細データが 10 件になるようにページ フッタの大きさを調整しているようですが、絶対に 10 件になるとは限りません。
グループ フッタの改ページに 「1 ページ目でかつ 10 件以上」 という条件を設定した方が無難でしょう。

10 件をカウントするには 「式フィールド」 と Shared (Global) 変数を使用します。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
山田
常連さん
会議室デビュー日: 2004/11/22
投稿数: 25
投稿日時: 2007-05-10 10:16
>>じゃんぬねっと様

回答有難うございます。

ページフッターの大きさは調整しておらず、質問文の中にあります
表示/非表示の式を入れているだけになっています。
(1ページ目のみ表示、あとは非表示)

詳細セクションの改ページには、以下の式を入れて調整しております。

WhilePrintingRecords;
If PageNumber = 1 then
RecordNumber = 15

メモ分のフッターを表示する1ページ目は、最大15件しか表示できないため、このようにしております。
この式だと、2ページ目以降は、詳細領域分を目一杯使って
明細データを自動的に表示してくれるのだと考えていたのですが・・・・。
何か私は思い違いをしているのでしょうか。

>>グループ フッタの改ページに 「1 ページ目でかつ 10 件以上」 という条件を設定した方が無難でしょう。

今回、グループフッタではなく、ページフッターを使用しております。
(データ内容は関係ない単なる空白なので)
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2007-05-10 12:31
引用:

山田さんの書き込み (2007-05-10 10:16) より:
>>じゃんぬねっと様

回答有難うございます。

ページフッターの大きさは調整しておらず、質問文の中にあります
表示/非表示の式を入れているだけになっています。
(1ページ目のみ表示、あとは非表示)

詳細セクションの改ページには、以下の式を入れて調整しております。

WhilePrintingRecords;
If PageNumber = 1 then
RecordNumber = 15

メモ分のフッターを表示する1ページ目は、最大15件しか表示できないため、このようにしております。
この式だと、2ページ目以降は、詳細領域分を目一杯使って
明細データを自動的に表示してくれるのだと考えていたのですが・・・・。
何か私は思い違いをしているのでしょうか。

>>グループ フッタの改ページに 「1 ページ目でかつ 10 件以上」 という条件を設定した方が無難でしょう。

今回、グループフッタではなく、ページフッターを使用しております。
(データ内容は関係ない単なる空白なので)


バカだ。こいつ。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-05-10 13:00
引用:

山田さんの書き込み (2007-05-10 10:16) より:

ページフッターの大きさは調整しておらず、質問文の中にあります表示/非表示の式を入れているだけになっています。(1ページ目のみ表示、あとは非表示)


えーっと、そういう意味ではありませんでしたが、
(非表示でも 10 件になってしまうというのも最初の投稿から理解しております)

引用:

詳細セクションの改ページには、以下の式を入れて調整しております。

WhilePrintingRecords;
If PageNumber = 1 then
RecordNumber = 15


この返信内容により、先の投稿の指摘の意味はなくなりました。

引用:

メモ分のフッターを表示する1ページ目は、最大15件しか表示できないため、このようにしております。


あれ?

引用:

(1枚目はフッターにより10行、2枚目以降はフッターが非表示になるので
11行以上表示出来る領域があるはずだが、2枚目以降も10行しか表示されていない)


これは何だったのでしょう? > "フッターにより、10 行"
矛盾していると思いますけど...

# 私の最初の指摘は "式でレコード数を決めていないのではないか" というものです。
# そう思ってしまったのは、この部分からなのです。

引用:

この式だと、2ページ目以降は、詳細領域分を目一杯使って
明細データを自動的に表示してくれるのだと考えていたのですが・・・・。
何か私は思い違いをしているのでしょうか。


今回の問題点は当初 2 点あると思っていました。

引用:

>>グループ フッタの改ページに 「1 ページ目でかつ 10 件以上」 という条件を設定した方が無難でしょう。


これはその問題を 2 点とも解決できる回答のつもりでした。

1 点目はレコード数の制限を式でやった方が良いというものです。
これに関しては山田さんの 2 回目の投稿で、現時点でも実装されているので問題ないということがわかりました。

もう 1 点がページ フッタを使うのではなく、グループ フッタを代わりに使いましょうというものです。
単に使うだけでは仕様を実現できないので、改ページ条件云々のお話も書かせて頂きました。

この部分に関しては私の書き方がまずかったと自覚しております。
申し訳ありませんでした。

ちなみにページ フッタでも 「ドリルダウン不可」 でかつ 「非表示」 にすればイケたような気もします。
ここ 1 年以上 CrystalReports は触っていないので、記憶が定かではないのですが...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
山田
常連さん
会議室デビュー日: 2004/11/22
投稿数: 25
投稿日時: 2007-05-10 14:22
>> じゃんぬねっと様

何度も回答下さいまして有難うございます。

>> これは何だったのでしょう? > "フッターにより、10 行"
>> 矛盾していると思いますけど...

質問文の条件と、返答の条件が違っていますね・・・。
質問用に、適当な数値を設定しておりました。
混乱させてしまいまして、申し訳ないです。

グループフッターを、ページフッターの代わりに使用する件についてですが
フッターの表示/非表示には、ページ番号だけが関係しており
データが関係していないため、グループ化に適するフィールドが存在しません。

>>ちなみにページ フッタでも 「ドリルダウン不可」 でかつ 「非表示」 にすればイケたような気もします。

私もこれでイケると考えておりましたが無理でした。
非表示にはなりますが、フッターの領域は残ったままになります。
処理順序で言えば、詳細データを表示した後に、フッターを非表示にしているからでしょうか・・?
ヘッダーを非表示にした場合は、ヘッダー領域を詰めて詳細を表示してくれるのですが。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-05-10 14:32
引用:

山田さんの書き込み (2007-05-10 14:22) より:

グループフッターを、ページフッターの代わりに使用する件についてですがフッターの表示/非表示には、ページ番号だけが関係しておりデータが関係していないため、グループ化に適するフィールドが存在しません。


最初の 1 ページのレコード数は決まっているのですよね?
グループ フッタと言っても今回はグループ化するために追加するものではありませんから、条件は必要なくていわゆるダミーのような扱いで検討してみてください。

引用:

処理順序で言えば、詳細データを表示した後に、フッターを非表示にしているからでしょうか・・?
ヘッダーを非表示にした場合は、ヘッダー領域を詰めて詳細を表示してくれるのですが。


Report Engine からするとその方が都合が良いのでそうなっていると思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
山田
常連さん
会議室デビュー日: 2004/11/22
投稿数: 25
投稿日時: 2007-05-11 16:12
>> じゃんぬねっと様

教えて頂いたように、ダミーの項目を作って
その項目に対してグループを作成したところ、当方の思うように動いてくれました。
有難うございました。
1

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