- - PR -
印刷時の改ページ制御はできますか?
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-12-01 13:26
DataGridで表示した表をIEの印刷機能で印刷したいのですが、行の途中で改ページされてしまいます・・・
改ページは行えるのでしょうか? 情報をお持ちの方はご教授願います。 | ||||||||||||
|
投稿日時: 2003-12-01 13:31
こんにちは。
回避策になってしまうのですが、 私の場合はページングを使って自動改ページされない程度の行数に抑えるか、 HTMLコントロールのテーブルを使用して、一定の行数に達したらスタイルシートで改ページしています。 [ メッセージ編集済み 編集者: まゆりん 編集日時 2003-12-01 13:33 ] | ||||||||||||
|
投稿日時: 2003-12-01 13:42
まゆりんさん、早速のご返事ありがとうございます。ただ、今回はなんとかDataGridを使用したいと考えています・・ DataGridでの改ページ制御はできないのですかね。。。
| ||||||||||||
|
投稿日時: 2003-12-01 13:47
スタイルシートを使うなら、DataGridでもかまわないのでは?DataGridはテーブル要素として出力されますよ。 | ||||||||||||
|
投稿日時: 2003-12-01 14:10
そうなんですが、スタイルシートの改ページ(page-break-before、page-break-after)は、 要素と要素の間でないと有効ではないようなのです。 DataGridはひとつのTable要素として出力されますので、任意の行で改ページ出来ませんでした。 で、仕方がないので普通のTableを使って任意の行数までに至ったら一度Tableを閉じて page-break-afterを入れてまたTableを・・・と手間の掛かることをしてました。 ---------------------------------------------- 【追記】 市販のコンポーネントソフトなら可能みたいですね。 GrapeCityとか。(って前にも言った記憶が・・・) [ メッセージ編集済み 編集者: まゆりん 編集日時 2003-12-01 14:27 ] | ||||||||||||
|
投稿日時: 2003-12-01 15:03
勉強不足で申し訳ありませんが具体的にどのようにすれば改ページ設定されるのでしょうか?
申し訳ないですがお願いします。 | ||||||||||||
|
投稿日時: 2003-12-01 15:22
えっと、『HTML&スタイルシート辞典』(ISBN4-7980-0027-2)を参考にしていますが、page-break-before, afterは、「ブロックレベル要素」にしか付けられないですね。ところで、td要素の中には、「ブロックレベル要素」を入れることができます。これを利用できないですかね?DataSetやDataTableを直接DataGridにバインドするのではなく、DataViewを通してからにし、DataViewで適当な行で「改行」用の行を挿入し、その中で「<p id="PageBreak"> </p>」、スタイルシートで「p.PageBreak {page-break-after : always}」とか。 | ||||||||||||
|
投稿日時: 2003-12-01 17:17
ブロックレベル要素ですか。それは知らなかったので勉強になりました。
ちょっと試してみましたが、改ページを挿入した行が空欄の状態で表示されてしまい、 見た目的にあまり宜しくなかったです・・・。 #ちゃんと改ページはしてくれましたが。 また、DataViewを使わなくてもDataTableだけで 改ページ処理を追加することも出来ましたが、 空欄行が出来てしまうのはどちらも同じでした。
それと、ひとつのTableを無理矢理改ページしてしまうため 結局行の途中で切れたように印刷されてしまい、 くーるちゃんさんの希望に沿わない結果になってしまうと思うのですが。 #切れるのは改行処理を入れた空欄行だけなので、 #データが切れていなければ良いということであれば、話は別です。 ------------- コード修正 [ メッセージ編集済み 編集者: まゆりん 編集日時 2003-12-01 17:19 ] |