สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
รายละเอียดวิชา ง การงานพื้นฐาน4(คอมพิวเตอร์2)
Advertisements

คำสั่งเริ่มต้น รูปแบบ. <HTML>. </HTML>
Lab Part Nattee Niparnan
โครงสร้างโปรแกรมภาษา C
การใช้ MessageBox-InputBox
การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
Chapter 2 เริ่มต้นการสร้างเว็บ
เฉลย Lab 10 Loop.
หลักการออกแบบของ ADDIE model ADDIE model
การแก้ปัญหาด้วยคอมพิวเตอร์
การโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
บทที่ 3 พื้นฐานการเขียนโปรแกรม Visual Basic
แผนผัง FlowChart Flow Chart คือ ขั้นตอนที่นำผลที่ได้จากการกำหนดและการ วิเคราะห์ปัญหามาเขียนเป็นแผนภาพหรือสัญลักษณ์ ประโยชน์ของผังงาน -ช่วยลำดับขั้นตอนการทำงานของโปรแกรม.
Properties ของคอนโทรล ที่ควรรู้จักในเบื้องต้น
ครั้งที่ 7 Composition.
Surachai Wachirahatthapong
การควบคุมทิศทางการทำงานของโปรแกรม
โปรแกรม Microsoft Access
เฉลย Lab 9 Decision.
เทคโนโลยีสารสนเทศ เทคโนโลยี + สารสนเทศ.
C# Programming Exceed Camp: Day 3.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2550 Structure Programming มหาวิทยาลัยเนชั่น.
บทที่ 7 คำสั่งสำหรับเขียนโปรแกรม
บทที่ 11 การเขียนโปรแกรมแบบ Structured Programming และการจัดการตรวจสอบข้อผิดพลาด.
Timer ตัวจัดการด้านเวลา
บทที่ 3 ชนิดของข้อมูลและตัวดำเนินการ
Chapter 7 Iteration Statement
โปรแกรมภาษาจาวาเบื้องต้น Basic Java Programming 3(2-2-5)
การพิมพ์งานออกทางเครื่องพิมพ์
ความรู้ทั่วไปเกี่ยวกับโปรแกรม Microsoft Access
โดย อ. นัฐพงศ์ ส่งเนียม การเขียนโปรแกรมคอมพิวเตอร์ และอัลกอรทึ่ม ( ) Lec04 : [ การแปลงจาก FlowChart.
บทที่ 4 Aggregation Abstraction
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
การวิเคราะห์และออกแบบระบบเชิงวัตถุ (OOAD)
การเขียนโปรแกรมคอมพิวเตอร์ และอัลกอริทึ่ม Lec03 : 25/03/2551 การทำงานกับ Event ต่าง ๆ โดย อ. นัฐพงศ์ ส่งเนียม
วิชา :: การเขียนโปรแกรมภาษาคอมพิวเตอร์ขั้นสูง
Selection Nattapong Songneam.
หลักการทำ Animation แบบง่ายๆ
เขียนโปรแกรมเพื่อแสดงข้อมูลพนักงาน ด้วย ADO.NET vs. DataReader
วิชาคอมพิวเตอร์กราฟิก intro_vb_net_06 การสร้างกราฟเส้นตรงด้วย VB.NET
วิชาคอมพิวเตอร์กราฟิก
การใช้งานโปรแกรม Microsoft Power Point
Control Statements.
ฟอร์ม โมดูล และ MDI.
บทที่ 3 การทำงานกับฟอร์ม (Form)
โปรแกรม Microsoft Access
Object-Oriented Programming
หลักการเขียนโปรแกรม ( )
บทที่ 3 การสร้าง Appication แบบ Windows Form
การนำระบบเทคโนโลยีสารสนเทศมาสนับสนุนการทำงาน
การเขียนแบบเสนอหัวข้อโครงงาน
การเขียนโปรแกรมสั่งงานตัวควบคุม (Control)
ADO.NET (การบริหารและจัดการข้อมูล)
BCS 121 บท 5 การโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
Polymorphism กนกวรรธน์ เซี่ยงเจ็น
การออกแบบส่วนติดต่อกับผู้ใช้ User Interface Design
Object Oriented Programming : OOP
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
หลักการเขียนโปรแกรมเบื้องต้น
แนะนำการเขียนโปรแกรมภาษา C Introduction to C Programming Language
Software Packages in Business (Unit 1)
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
Debugging กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา.
1 Functions กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา.
การออกแบบสื่อเพื่อการศึกษา ADDIE Model
Problem Analysis and Algorithm (การวิเคราะห์ปัญหา และการจำลองความคิด)
1 Inheritance อุทัย เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
ความรู้เบื้องต้น เกี่ยวกับโปรแกรม
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
หลักการทั่วไปเกี่ยวกับการเขียนโปรแกรม
ใบสำเนางานนำเสนอ:

สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา Printing กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา

เนื้อหา บทนำ Crystal Report การพิมพ์อย่างง่าย การแสดงตัวอย่างก่อนพิมพ์ การพิมพ์หลายหน้า สรุป

บทนำ ในการทำงานเชิงธุรกิจ รายงานเป็นสิ่งจำเป็นมากที่สุด โดยมีเครื่องมือจำนวนมากที่สามารถใช้สร้างรายงานได้ อาทิเช่น Crystal Report ซึ่งจะไม่มีการติดตั้งมากับ Visual Basic .NET Express Edition ที่เป็นเวอร์ชันฟรี อย่างไรก็ดีในการเรียนการสอน เราสามารถใช้เครื่องมือ GDI+ Library ซึ่งเป็นเครื่องมือเกี่ยวกับ Graphics ที่ติดมากับ VB เพื่อทดสอบการพิมพ์แบบง่าย ๆ ได้

Crystal Report เป็นเครื่องมือ ที่นิยมนำมาใช้ช่วยในการออกรายงาน โดยจะมีการติดตั้งมากับ Visual Basic .NET เวอร์ชันเต็ม

การพิมพ์อย่างง่าย ในการพิมพ์เอกสารด้วยต้นเอง จะมี Name Space ที่เกี่ยวข้องคือ System.Drawing.Printing นิสิตจำเป็นต้องมีการ Imports System.Drawing.Printing เข้าไปไว้บรรทัดบนสุดเพื่อให้สามารถเรียกใช้งานเครื่องพิมพ์ได้

การสร้างรายงาน ประกอบด้วย 2 ส่วน เนื้อหาของเอกสารที่จะส่งให้เอกสารเปล่า เอกสารเปล่าเพื่อจัดเก็บเอกสาร เอกสารเปล่า เนื้อหา เอกสาร+เนื้อหา +

การพิมพ์อย่างง่าย (สร้างเนื้อหา) Private Sub myDoc_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs) Dim myFont As New Font("Arial", 10) Dim x As Single = e.MarginBounds.Left Dim y As Single = e.MarginBounds.Top Dim lineHeight As Single = myFont.GetHeight(e.Graphics) Dim i As Integer For i = 0 To 100 e.Graphics.DrawString("This is line " & i.ToString, myFont, Brushes.Black, x, y) y += lineHeight Next End Sub

การพิมพ์อย่างง่าย (สร้างเอกสารเปล่า) Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click Dim myDoc As New PrintDocument AddHandler myDoc.PrintPage, AddressOf myDoc_PrintPage Dim dlgSetting As New PrintDialog dlgSetting.Document = myDoc Dim result As DialogResult = dlgSetting.ShowDialog() If (result = Windows.Forms.DialogResult.OK) Then myDoc.Print() End If End Sub

หลักการทำงาน สร้างเอกสารเปล่าเพื่อจัดเก็บเอกสาร Dim myDoc As New PrintDocument AddHandler myDoc.PrintPage, AddressOf myDoc_PrintPage โดยมีการเชื่อมโยงกับเหตุการณ์ของหน้าเอกสาร(PrintPage) ของวัตถุ(myDoc) myDoc.PrintPage โดยสัมพันธ์กับ Procdure ชื่อ myDoc_PrintPage ที่เราสร้างไว้ก่อนหน้า

Dim dlgSetting As New PrintDialog หลักการทำงาน สร้าง Dialog เพื่อแสดงรายละเอียดของเครื่องพิมพ์ (PrintDialog) โดยส่งเอกสาร (myDoc) ไปยังเครื่องพิมพ์ โดยรอการยืนยันว่าจะพิมพ์เอกสาร หรือไม่ จากผู้ใช้ Dim dlgSetting As New PrintDialog dlgSetting.Document = myDoc

หลักการทำงาน Dim result As DialogResult = dlgSetting.ShowDialog() ถ้าผู้ใช้ยืนยันการพิมพ์โดยการคลิก “OK” ก็จะทำการพิมพ์เอกสาร(myDoc) ผ่านคำสั่ง (Print) Dim result As DialogResult = dlgSetting.ShowDialog() If (result = Windows.Forms.DialogResult.OK) Then myDoc.Print() End If

คำถาม: ข้อมูลที่จะพิมพ์จากไหน คำตอบ: ข้อมูลที่จะพิมพ์ออกทางเอกสาร (myDoc) มาจาก Private Sub myDoc_PrintPage คำถาม: แล้วข้อมูลข้างต้นมาได้ยังไง คำตอบ: ข้อมูลที่จะพิมพ์ ได้ถูกกำหนดให้สัมพันธ์กัน ตอนนี้ Dim myDoc As New PrintDocument AddHandler myDoc.PrintPage, AddressOf myDoc_PrintPage

การสร้างเนื้อหาในเอกสาร สร้างจาก Private Sub myDoc_PrintPage การสร้างเนื้อหาในเอกสาร มีขั้นตอนอะไรบ้าง

ขั้นตอนการสร้างเนื้อหาของเอกสาร ฟอนต์ Dim myFont As New Font("Arial", 10) ตำแหน่งที่ต้องการพิมพ์ Dim x As Single = e.MarginBounds.Left Dim y As Single = e.MarginBounds.Top ความสูงของตัวอักษรในแต่ละบรรทัด Dim lineHeight As Single = myFont.GetHeight(e.Graphics)

การสร้างเนื้อหาต้องพิจารณาอะไรบ้าง การแสดงผลลัพธ์ออกทางจอภาพด้วย DrawString e.Graphics.DrawString("This is line " & i.ToString, myFont, Brushes.Black, x, y) การขึ้นบรรทัดใหม่ คือ การเปลี่ยนตำแหน่งในแกน y ให้เท่ากับความสูงของตัวอักษรที่เราเก็บไว้ก่อนหน้า y += lineHeight

การแสดงตัวอย่างก่อนพิมพ์

ปุ่มตัวอย่างก่อนพิมพ์ (btnPrintPreview) Private Sub btnPrintPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrintPreview.Click Dim dlgPreview As New PrintPreviewDialog Dim myDoc As New PrintDocument AddHandler myDoc.PrintPage, AddressOf myDoc_PrintPage dlgPreview.Document = myDoc dlgPreview.Show() End Sub

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

การพิมพ์หลายหน้า โดยต้องมีการเตรียมพื้นที่สำหรับพักข้อมูล (Buffer) ก่อนการพิมพ์ โดยในที่นี้ผู้สอนได้สร้าง Class ชื่อว่า TextDocument ที่รับการถ่ายทอดคุณสมบัติจาก PrintDocument ซึ่งสามารถพิมพ์ได้แค่ 1 หน้า

คลาส TextDocument Public Class TextDocument Inherits PrintDocument Private _Text() As String Private _PageNumber As Integer Private _Offset As Integer Public Property Text() As String() Get Return _Text End Get Set(ByVal value As String()) _Text = value End Set End Property

คลาส TextDocument (ต่อ) Public Property PageNumber() As Integer Get Return _PageNumber End Get Set(ByVal value As Integer) _PageNumber = value End Set End Property Public Property Offset() As Integer Return _Offset _Offset = value Public Sub New(ByVal text() As String) Me.Text = text End Sub End Class

การสร้างเนื้อหาในเอกสาร Private Sub myDoc1_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs) Dim Doc As TextDocument = CType(sender, TextDocument) Dim myFont As New Font("Arial", 10) Dim LineHeight As Single = myFont.GetHeight(e.Graphics) Dim x As Single = e.MarginBounds.Left Dim y As Single = e.MarginBounds.Top Doc.PageNumber += 1 Do e.Graphics.DrawString(Doc.Text(Doc.Offset), myFont, Brushes.Black, x, y) Doc.Offset += 1 y += LineHeight Loop Until (y + LineHeight) > e.MarginBounds.Bottom Or Doc.Offset > Doc.Text.GetUpperBound(0) If Doc.Offset < Doc.Text.GetUpperBound(0) Then e.HasMorePages = True Else Doc.Offset = 0 End If End Sub

การพิมพ์เอกสารหลายหน้า Private Sub btnPrint1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint1.Click Dim PrintText(100) As String Dim i As Integer For i = 0 To 100 PrintText(i) = "This is line " PrintText(i) &= i.ToString() Next Dim myDoc1 As New TextDocument(PrintText) AddHandler myDoc1.PrintPage, AddressOf myDoc1_PrintPage Dim dlgSetting As New PrintDialog() dlgSetting.Document = myDoc1 Dim result As DialogResult = dlgSetting.ShowDialog() If result = Windows.Forms.DialogResult.OK Then myDoc1.Print() End If End Sub

การแสดงตัวอย่างก่อนพิมพ์หลายหน้า Private Sub btnPrintPreview1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrintPreview1.Click Dim PrintText(100) As String Dim i As Integer For i = 1 To 100 PrintText(i) = "This is line " PrintText(i) &= i.ToString() Next Dim dlgPreview As New PrintPreviewDialog Dim myDoc1 As New TextDocument(PrintText) AddHandler myDoc1.PrintPage, AddressOf myDoc1_PrintPage dlgPreview.Document = myDoc1 dlgPreview.Show() End Sub

สรุป ในการออกรายงาน ปกติจะมีเครื่องมือช่วยสนับสนุนการทำงานนี้อยู่แล้ว เช่น Crystal Report ซึ่งจะติดตั้งกับ Visual Basic .NET เวอร์ชันเต็มอย่างไรก็ดีเราสามารถพิมพ์เอกสารแบบง่าย ๆ ได้โดยใช้ GDI+ ที่มากับ VB.NET แทน เนื่องจากถึงระบบจะดีเพียงใด แต่ถ้าไม่สามารถออกรายงานได้ฉันใด ก็ไม่สามารถแสดงได้ถึงคุณค่าของโปรแกรมได้อย่างเต็มที่ฉันนั้น

สรุป หากนิสิตต้องการรายงานที่มีประสิทธิภาพ คงต้องติดตั้งโปรแกรม Visual Basic .NET เวอร์ชันเต็มที่จะติดตั้งฟังก์ชันการทำงาน มาอย่างครบครัน