Page 1 of 1

วิธีการวาดเส้นแนวตั้ง แนวนอน และสี่เหลี่ยม

Posted: Tue Jan 07, 2014 6:48 pm
by H.Suraseth
ตอนนี้ผมต้องการ วาดตารางเพื่อให้ในการแสดงข้อมูล ให้ User ครับ
แต่ติดปัญหาในการ ใช้คำสั่งครับ


'--//การตั้งค่าการพิมพ์

Code: Select all

  Private Sub PrintDocument_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage
        Dim black As New SolidBrush(Color.Black)
        Dim blue As New SolidBrush(Color.Blue)
        Dim fntT As Font = New Font("CordiaUPC", 16, FontStyle.Regular)
        Dim brushT As New SolidBrush(Color.Black)
        Dim h As Integer = fntT.Height
        Dim x, y As Integer
        x = e.MarginBounds.Left
        y = e.MarginBounds.Top

        Dim fnt As Font = New Font("CordiaUPC", 16, FontStyle.Regular)
        Dim brush As New SolidBrush(Color.Black)
        Dim hight As Integer = fnt.Height

        '--รูปแบบตายตัวของเอกสาร เรื่อง เศษวัสดุที่นำออกนอกพื้นที่โรงงาน
        If _StrDate = _EndDate Then
            e.Graphics.DrawString(lblT1.Text, fntT, black, 280, 3 * fntT.Height)
            y += h
            e.Graphics.DrawString(lblT2.Text, fntT, black, 295, 4 * fntT.Height)
            y += h
            e.Graphics.DrawString(lblStrD.Text, fntT, black, 330, 4 * fntT.Height)
            y += h
            e.Graphics.DrawString(cbProduct.Text, fntT, black, 450, 4 * fntT.Height)
            y += h
            y += h
            y += h
        Else
            e.Graphics.DrawString(lblT1.Text, fntT, black, 280, 3 * fntT.Height)
            y += h
            e.Graphics.DrawString(lblT2.Text, fntT, black, 220, 4 * fntT.Height)
            y += h
            e.Graphics.DrawString(lblStrD.Text, fntT, black, 255, 4 * fntT.Height)
            y += h
            e.Graphics.DrawString(lblT3.Text, fntT, black, 380, 4 * fntT.Height)
            y += h
            e.Graphics.DrawString(lblEndD.Text, fntT, black, 405, 4 * fntT.Height)
            y += h
            e.Graphics.DrawString(cbProduct.Text, fntT, black, 535, 4 * fntT.Height)
            y += h

            '-----------------------------------------------------------
            'e.Graphics.DrawLines(????)     '-- ต้องการวาดสี่เหลี่ยม เพื่อนเป็บแบบฟอร์มเบื้องต้น ครับ
            'y += h
            '-----------------------------------------------------------

        End If

        For i = lineNo To lines1.Length - 1
            e.Graphics.DrawString(lines1(i), fnt, brush, x, y)
            e.Graphics.DrawString(linesA(i), fnt, brush, 350, y)
            y += hight
            If (y >= e.MarginBounds.Bottom + 50) Then
                e.HasMorePages = True
                lineNo = i + 1
                Exit Sub
            Else
                e.HasMorePages = False
            End If
        Next
    End Sub


ขอบพระคุณอย่างสูง ครับ

Re: วิธีการวาดเส้นแนวตั้ง แนวนอน และสี่เหลี่ยม

Posted: Tue Jan 07, 2014 8:15 pm
by snasui
:D ตารางใน Excel มีอยู่แล้วไม่จำเป็นจะต้องวาดขึ้นใหม่แต่อย่างใดครับ

ดูเหมือน Code ที่เขียนไมได้ Refer ถึง Object ของ Excel ไม่ทราบว่าสิ่งทีวาดมีหน้าตาเป็นอย่างไร วาดแล้วอยู่ที่ไหน ตอนนี้ผมไม่ได้ใช้ Visual Studio ไม่สะดวกในการตอบและทดสอบ Code ของ VB ครับ

Re: วิธีการวาดเส้นแนวตั้ง แนวนอน และสี่เหลี่ยม

Posted: Wed Jan 08, 2014 8:02 am
by H.Suraseth
ที่ผมทำการวสขึ้นมาใหม่ เพราะใน Application ของผม ต้องมีปุ่มในการสั่ง print เอกสาร PDF ครับท่านอาจารย์
ดังนั้นผมจึงต้องเก็บจำนวนบรรทัดข้องข้อมูล และเพิ่มด้วยจำนวนเส้นตารางครับ

เช่น
ถ้าจำนวนบรรทัดข้อมูลมีทั้งหมด 6 บรรทัด
เมื่อกดสัง่ print ก็จะไล่วนูปแสดงค่าของข้องมูลในบรทัดนั้นๆ
ตามด้วย เส้นสี่เหลี่ยม(ที่กำลังจะวาดครับ) |________|____|_______| ประมาณนี้ครับ


ขอบคุณมากครับ

Re: วิธีการวาดเส้นแนวตั้ง แนวนอน และสี่เหลี่ยม

Posted: Wed Jan 08, 2014 12:11 pm
by H.Suraseth
H.Suraseth wrote:ที่ผมทำการวาดขึ้นมาใหม่ เพราะใน Application ของผม ต้องมีปุ่มในการสั่ง print เอกสาร PDF ครับท่านอาจารย์
ดังนั้นผมจึงต้องเก็บจำนวนบรรทัดของข้อมูล และเพิ่มด้วยจำนวนเส้นตารางครับ

เช่น
ถ้าจำนวนบรรทัดข้อมูลมีทั้งหมด 6 บรรทัด
เมื่อกดสั่ง print ก็จะไล่วนูปแสดงค่าของข้องมูลในบรทัดนั้นๆ
ตามด้วย เส้นสี่เหลี่ยม(ที่กำลังจะวาดครับ) |________|____|_______| ประมาณนี้ครับ

ตอนนี้ได้แล้วครับท่านอาจารย์
แต่ตอนนี้ติดปัญหาตรงที่จะใช้คำสั่งควบคุมหน้ากระดาษ ให้เป็นแนวนอนครับ

Code: Select all

  Private Sub btnPrintS2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrintS2.Click
        PrintDocument1.Print()

        '------------------------------------
        'PageSetupDialog.AllowMargins =  ????           '--ต้องตั้งค่าตรงส่วนนี้ ใช่ไหมครับ การกำหนดหน้ากระดาษเป็นแนวนอน
        'PrintDocument1.DefaultPageSettings = ????
        '------------------------------------
    End Sub

ขอบคุณมากครับ

Re: วิธีการวาดเส้นแนวตั้ง แนวนอน และสี่เหลี่ยม

Posted: Wed Jan 08, 2014 2:45 pm
by snasui
:D ตัวอย่างการกำหนด Properties ของ PrintDialog ครับ

Code: Select all

'Dialog properties example
With PrintDialog
	.AllowCurrentPage = False
	.AllowPrintToFile = False
	.AllowSelection = False
	.AllowSomePages = False
	.Document = DialogsPrintDocument
	.PrinterSettings.DefaultPageSettings.Margins.Top = 25
	.PrinterSettings.DefaultPageSettings.Margins.Bottom = 25
	.PrinterSettings.DefaultPageSettings.Margins.Left = 25
	.PrinterSettings.DefaultPageSettings.Margins.Right = 25
End With

Re: วิธีการวาดเส้นแนวตั้ง แนวนอน และสี่เหลี่ยม

Posted: Wed Jan 08, 2014 6:29 pm
by H.Suraseth
ขอบคุณมากครับ
Appilcation แรกของผม เสร็จได้ด้วยดี ต้องขอบคุณ ท่านอาจารย์มา ณ ที่นี้ด้วยครับ