วันพฤหัสบดีที่ 10 สิงหาคม พ.ศ. 2560

การใช้ PrintDocument และ PrintPreviewDialog

คุยกันก่อนครับ  ก่อนอื่นสวัสดีครับ วันนี้เราจะมาลองใช้เครื่องมือ PrintDocument และ PrintPreviewDialog ทำการดึงข้อมูลจาก Datagridview ออกมาแสดงพูดง่ายๆคือเอาออกมาเป็นรายงานแบบง่ายๆครับ ถ้าจะพูดถึงรายงานที่ทำได้จากตัว Visual basic เลยก็มีวิธีนี้อีกวิธีนึงครับที่สามารถทำได้ซึ่งหลังจากที่ได้ผมได้ทดลองทำดูก็พบว่ามันก็ไม่ยากมากครับเพียงแต่อาจจะมีบางอย่างที่เป็นข้อจำกัดอยู่บ้าง แต่ถ้าบอกว่าออกมาเป็นรายงานได้ก็เอาล่ะ งั้นก็ลองมาดูกันเลยครับ


เราทำการสร้างฟอร์มและใช้ Datagridview กับ Button ดังภาพครับ ส่วนสำคัญเราใช้เครื่องมือ PrintPreviewDialog1 และ PrintDocument มาเป็นตัวเอกในที่นี้ครับ

หลังจากได้เครื่องมือครบถ้วนแล้ว อันดับแรกก็ทำให้ Datagridview แสดงข้อมูลออกมาก่อนครับโดยใช้โค้ดจากบทความก่อนหน้านี้ก็ได้ครับ


อยากให้สังเกตุนิดนึงนะครับว่าตรงกรอบสีแดงที่ผมได้วงไว้ให้นั้นเป็นสิ่งที่ต้องเขียนตอนโหลดฟอร์มขึ้นมาครับ หลังจากนั้นเขียนฟังก์ชันเพื่อทำการเรียกใช้โดยส่วนนี้จะเป็นส่วนกำหนดจุดแสดงข้อมูลครับ

อธิบายนะครับ
               Dim row As Integer = 50  กำหนดพิกัดแถว
               Dim col As Integer = 350 กำหนดพิกัดคอลัมน์
               Dim PrintFont As New Font("Angsana NEW", 16) กำหนดรูปแบบฟอร์นเก็บ Angsana New มีขนาดตัวอักษร 16 ครับ
                Dim PrintPosition As New PointF  เป็นการสร้างตัวแปรพิกัดครับเพื่อใช้กับ row,col ครับ
                Dim PrintColor As New SolidBrush(Color.Black)  อันนี้ก็เป็นสีตัวอักษรครับผม

  For x = 0 To DataGridView1.Rows.Count - 2  ส่วนนี้คือการวนเอาค่าที่อยู่ใน Datagridview ออกมา
            PrintPosition = New PointF(col, row)  นำตัวแปร Printposition ที่เราประกาศไว้รับค่าพิกัด
            e.Graphics.DrawString(DataGridView1.Rows(x).Cells(0).Value.ToString, PrintFont, PrintColor, PrintPosition)   ทำการวาดหรือเขียนค่าที่อยู่ใน Datagridview โดยที่ให้เป็นรูปแบบฟอร์น  สีฟอร์น และตำแหน่งการแสดงข้อความตาม ที่กำหนด
            row = row + 50   กำหนดให้แถวที่จะแสดงเป็นบรรทัดใหม่คือการเพิ่มค่าจากบรรทัดเดิมครับ
        Next

จากนั้นก็เขียนโค้ดเรียกใช้ที่ปุ่ม หรือ Button ของเราครับ เมื่อเสร็จแล้วก็ทำการดูผลการทำงานครับ



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

4 ความคิดเห็น:

  1. ขอบคุณครับ ตามหามานานแสนนาน จนกว่าจะหาเจอนี่ผมค้นไปตั้งสิบกว่ารอบ

    ตอบลบ
  2. ความคิดเห็นนี้ถูกผู้เขียนลบ

    ตอบลบ
  3. คือหนูทำตามเเล้วเเต่ข้อมูลจากDataGridView มาไม่หมดอ่ะคะ มาเเค่เเถวเเรก

    ตอบลบ

โปรแกรมตั้งเวลา เข้าแถว เปิดเสียงหมดเวลา หมดคาบเรียน หรือชั่วโมงเรียน

สวัสดีครับในรอบ 2 ปี ผมหายไปตั้งแต่ปี 2560 ไม่ได้มาเขียน Blog เลย วันนี้กลับมา พร้อมกับโปรแกรมตัวนึงที่เขียนขึ้นเพื่อใช้งาน เล่านิดนึงครับ ผ...