tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^4: VB.NETの印刷の改ページ処理
投稿日: 2006/03/14(Tue) 17:02
投稿者応用の利かないあきこ
魔界の仮面弁士様、はやくもお返事有り難うございました。

すみません。まだ解決できないのです。

私の場合(VB5.0なのですが)、まず、
    Dim Yoko As Single
    Dim Tate As Single
    Dim Page As Integer
    Dim Data As Integer
    Dim Data_1 As Integer
    Dim Data_2 As Integer
    Dim Data_3 As Integer

Private Sub タイトル印刷()
        Yoko = 40
        Tate = 560
v      e.Graphics.DrawImage(img, Yoko, Tate)
End Sub

Private Sub 明細印刷()  ’実際はもっと複雑なんです
    Data = Data /   25  *  315
        e.Graphics.DrawString(Data, New Font("HGOCR-B", 13, FontStyle.Regular),  Yo
ko, Tate)
        Tate = Tate + 2.7
End Sub


Private Sub ページ印刷()
       Call タイトル印刷
         Page = 0
      Do Until Page = 100
            Data = Data_1          
          Call 明細印刷
            Data = Data_2          
          Call 明細印刷
            Data = Data_3          
          Call 明細印刷

            Data_1 = Data_1 + 1
            Data_2 = Data_2 + 1
            Data_3 = Data_3 + 1
           Page = Page + 1
        Loop
End Sub
です。

VB.NETでこれをすると
    Private Sub PrintDocument1_PrintPage(・・・

        Yoko = 40  ’タイトル印刷です
        Tate = 560
       e.Graphics.DrawImage(img, Yoko, Tate)

        Yoko = 40  ’ 以下明細印刷です
        Tate = 660

    Data_1 = Data_1 /   25  *  315
        e.Graphics.DrawString(Data, New Font("HGOCR-B", 13, FontStyle.Regular),  Yo
ko, Tate)
        Tate = Tate + 2.7

    Data_2 = Data_2 /   25  *  315
        e.Graphics.DrawString(Data, New Font("HGOCR-B", 13, FontStyle.Regular),  Yo
ko, Tate)
        Tate = Tate + 2.7

もし、Dataが200個有れば200カ所書くことになり、実際はもっと複雑なのですごい行数になります。


私が無い頭で考えた事は、
  PrintDocumentは、いくつも貼り付ける事ができるので、タイトル印刷・明細印刷をそれぞれ   
PrintDocument1・PrintDocument2にして

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        PrintDocument1.Print()
        Page = 0
    Do Until Page = 100
            Data = Data_1          
            PrintDocument2.Print()
            Data = Data_2          
            PrintDocument2.Print()
            Data = Data_3          
            PrintDocument2.Print()
            Data_1 = Data_1 + 1
            Data_2 = Data_2 + 1
            Data_3 = Data_3 + 1
            Page = Page + 1
        Loop
    End Sub
としたのですが、
        PrintDocumentはすべてページ変えをしてしまったのです。

長くなって申し訳ありませんが途方に暮れている状態なのです。
よろしくお願いします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。