C#での業務帳票
- 題名: C#での業務帳票
- 著者: ミッキー
- 日時: 2006/08/05 14:57:14
- ID: 17012
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: C#での業務帳票
- 著者: じゃんぬねっと
- 日時: 2006/08/05 15:44:21
- ID: 17016
- この記事の返信元:
-
[17012] C#での業務帳票 ミッキー 2006/08/05 14:57:14
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: C#での業務帳票
- 著者: ミッキー
- 日時: 2006/08/12 16:22:04
- ID: 17107
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
始めまして。
私は業務帳票の開発をしています。
サードパーティーを使わずに
PrintDocumentイベントで処理しているのですが、
内容の印字まではできるのですが、改頁がうまくいきません。
DO WHILEを使用した時の良い改頁方法をご教唆ください。
下記に例を転記します。
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Sql = "SELECT * FROM 担当者";
OleDbDataReader dr = Com.OleDTRDc(Sql);
if(dr.HasRows == true)
{
while(dr.Read())
{
//行あふれ、担当部署が変わると改頁する
→→→→ if(200 > WCNT || OldBusyo.Trim() != dr["担当部署"])
→→→→ {
→→→→ e.HasMorePages = true;
→→→→ }
Print_Set(dr);
Deta_Prt(sender,e);
WCNT++;
OldBusyo= Mji.NullSP(dr["担当部署"]);
}
}
else
{
printPreviewDialog1.Close();
}
//このページで終了する
e.HasMorePages = false;
}
上記→→→→部分のように、KEY割れ条件、あるいは1頁あたりの
MAX行数をオーバーフローした時に改頁を行いたいのですが、
e.HasMorePages = true;
と設定しても、printDocumentイベント内をループしないので、
改頁しません。
何か、強制的に改頁を発動できるような手法はありませんでしょうか?
それとも、こういった開発を行うには、
何か別のイベントを使用した方が良いのでしょうか?
宜しくお願い致します。