none
PrintDocumentでの改ページできない RRS feed

  • 質問

  • PrintDocument内で改ページができません。いろいろとやってはいるのですが?データベースからデータは呼込んでいるのですが、改ページ(HasMorePages)がどうしてできないのか理解できないのと、どこが悪いのかが分かりません。(MSDNライブラリを調べたのですが・・・)

    どなたかご教示の程よろしくお願いします。(VB.2003)

    Private Sub PrintDocument1_PrintPage(ByVal・・・・・・・・・)

    Dim a As SqlClient.SqlCommend = SqlConnection1.CreateCommand

    Dim b As SqlClient.SqlDataReader

    a.Connection = SqlConnection1

    SqlConnection1.Open()

    a.CommendText = "SELECT ・・・・・・・"     ’(SELECT文)

    b = a.ExecutReader

    Do While b.Read = True

    '一枚目の印字

    e.Graphic.DrawString(・・・・・・・・)  ’印字文

    e.Graphic.DrawString(・・・・・・・・)  ’印字文

    e.HasMorePages = True

    ’2枚目の印字

    e.Graphic.DrawString(・・・・・・・・)  ’印字文

    e.Graphic.DrawString(・・・・・・・・)  ’印字文

    e.HasMorePages = False

    Loop

    2006年3月18日 12:03

すべての返信

  • HasMorePageをTrueにしたら一度メソッドを抜けないといけません。

    メソッドを抜けると再度呼び出してくれます。

    2006年3月18日 12:42
  • 中博俊様

    お世話になりました。

    あぁ~そうだった。の気持ちです

    ついでと言っては大変失礼なんですが、Sql文(データセット)はPrintDocument内で書くのと、その他(例えば、Button等をクリック)の場所でSql処理させ、PrintDocumentでPrintさす方が良いのでしょうか?

    一般的に皆さんはどのような処理をされているのでしょうか。

    今回の内容は、データ(複数)から個々のデータに、住所等があれば、2枚の印字物があると言うものです

    差支えがなければ、ご指導をお願いします。

    あつかましいお願いですみません。

    2006年3月19日 0:23
  • その構造上イベント内で処理をさせると何度もDBアクセスにいったりしますし、もしもデータが無い場合でも印刷が走っちゃいます。

    事前に拾えるものなどは拾っておき、印刷に専念した方がいいでしょう。

    2006年3月19日 1:23
  • > ついでと言っては大変失礼なんですが、Sql文(データセット)は
    > PrintDocument内で書くのと、その他(例えば、Button等をクリック)の場所で
    > Sql処理させ、PrintDocumentでPrintさす方が良いのでしょうか?

    そもそも、PrintDocument で都度 SQL コマンドを投げたりしたら、
    ロックでもしない限り結果が異なることがありえます。

    ユーザの立場からしてみれば、ボタンを押下した時のデータが欲しいものです。

    2006年3月19日 3:10
  • 中博俊様

    じゃんぬねと様

    大変ありがとうございました。

    2006年3月19日 8:07