440 :
デフォルトの名無しさん:
長文質問失礼します。
使用環境 Access2000 + ADO(今回は関係ないかも) + Win2000
レポートにおいて、ページフッターとレポートフッターの表示(Visibleプロパティ)を
切り替える処理をしています。各ページにはページフッターでページの単価の合計を
印刷、最後のページだけはページフッターを非表示にして、レポートフッターのみを
表示し、全体の合計を印刷する処理です。
レポートのデザイン上、詳細セクションの大きさは常に一定になっています。
下から4分の1ほどの大きさにページフッター、もしくはレポートフッターが印刷され
るような形です。
ここから質問なんですが、ページフッターセクションのVisibleプロパティを
フォーマット時イベントで切り替えてもプレビューに反映されません。
そのセクションのフォーマットイベントでは自セクション自体の可視プロパティは
有効にならないんでしょうか?
もう一つ、不思議な挙動があるのですが、プレビューが呼ばれる前にフォーマット時
イベントが数回呼ばれるようですが、これはなぜなんでしょうか。このときにpagesプロパティ
などを取得しようにも、0が代入されていたりとよく分かりません。
以上、どなたかよろしくご教授ください。
>>440 で質問させていただいたものですが、一応ソースを載せますと
If Me.page < Me.Pages Then
Me.Section("ページフッターセクション").Visible = True
Else
Me.Section("ページフッターセクション").Visible = False
End If
上記のような単純な処理なのですが・・・
宜しくお願いします。
>>441 ページフッターセクションのフォーマット時イベントプロシージャの先頭に
If Page = Pages Then
Cancel = True
Exit Sub
End If
を追加すれば、最終ページでページフッターセクションが実行されない。
>>442さんありがとうございます。
確かにかかれていたコードでページフッターの処理は飛ばせました。
が、更なる問題が発生しました。
状況としては最終ページがレポートフッターのみ印刷される状態になっています。
原因は、プレビューを実行したときに一ページ目が表示される前に
フォーマットイベントが起き、憶測ですが一通りのページがフォーマット
され、全ページ数が決定されるようですが、この時点では"Pages"プロパティ
に値が入っていないため"Page=Pages"の評価が正しく行われません。
よって、本来は最終ページにはページフッターじゃなくレポートフッターのみ
印刷されるところが、両方印刷されてしまい、結果的にレポートフッターが
入りきらず最終ページに印刷されてしまいます。
もう一度だけヒントだけでもいただければと思うのですが。