ตัวอย่างการทำ Crystal Report แบบง่ายๆ ถ้าใน Visual Studio ไม่มี Crystal Report เหมือนในรูปให้ติดตั้ง Crystal Report ก่อนจะเริ่มทำนะค่ะ
วิธีการติดตั้ง Crystal Report ดังลิ้งนี้ค่ะ
http://codingsecret.blogspot.com/2014/08/install-crystal-report-on-visual-studio.html
1. New Project >> ใน Form1 ให้ลาก CrystalReportViewer ไว้ใน Form 1 จะได้เหมือนในรูป
2. ลาก PrintDialog เข้ามาใน Form1
4. ดู Toolbox เลือก DataTable ลากลงใน DataSet1.xsd
6. Add new item >> เพิ่ม Crystal Report
7. OK >> Finish
8. จะได้หน้าตา Crystal Report ดังนี้
9. เพิ่ม DataSet เข้ามาใน Crystal Report เลือกดังนี้ Database Fields >> Database Expert
10. จะได้ตัวแปรที่รอรับค่าดังนี้
11. Form ทั้งหมดมีดังนี้
12. เพิ่มโค้ด ตัวอย่าง ตามดังนี้
Public Class Form1
Private Sub btn_showReport_Click(sender As Object, e As EventArgs) Handles btn_showReport.Click
Dim dt_customer As DataTable = data_customer()
Call showCryReport(dt_customer)
End Sub
Private Sub btn_Print_dialog_Click(sender As Object, e As EventArgs) Handles btn_Print_dialog.Click
Dim dt_customer As DataTable = data_customer()
Call showCryReport_Dialog(dt_customer)
End Sub
Private Function data_customer()
Dim dt_customer As New DataTable("dt_customer")
dt_customer.Columns.Add("id", GetType(Integer))
dt_customer.Columns.Add("fname", GetType(String))
dt_customer.Columns.Add("lname", GetType(String))
dt_customer.Columns.Add("birthday", GetType(Date))
Dim id() As Integer = {1, 2, 3, 4}
Dim fname() As String = {"Anna", "Bu", "Cat", "Dan"}
Dim lname() As String = {"na", "ja", "ka", "ok"}
Dim birthday() As Date = {#1/2/2014#, #2/4/2014#, #3/8/2014#, #4/12/2014#}
For i = 0 To 3
Dim dr As DataRow
dr = dt_customer.NewRow
dr("id") = id(i)
dr("fname") = fname(i)
dr("lname") = lname(i)
dr("birthday") = birthday(i)
dt_customer.Rows.Add(dr)
Next
Return dt_customer
End Function
Private Sub showCryReport(ByVal dtprint As DataTable)
Try
Dim objRpt As New CrystalReport1
objRpt.SetDataSource(dtprint)
CrystalReportViewer1.ReportSource = objRpt
CrystalReportViewer1.Zoom(100)
CrystalReportViewer1.Refresh()
Catch ex As Exception
MessageBox.Show("กรุณาสั่งพิมพ์ใหม่ค่ะ", "พบข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Stop)
End Try
End Sub
Private Sub showCryReport_Dialog(ByVal dtprint As DataTable)
Try
Dim objRpt As New CrystalReport1
objRpt.SetDataSource(dtprint)
CrystalReportViewer1.ReportSource = objRpt
Dim result As DialogResult = PrintDialog1.ShowDialog()
'If click OK, print document to printer
If result = Windows.Forms.DialogResult.OK Then
objRpt.PrintOptions.PrinterName = PrintDialog1.PrinterSettings.PrinterName
objRpt.PrintToPrinter(1, False, 0, 0)
End If
Catch ex As Exception
MessageBox.Show("กรุณาสั่งพิมพ์ใหม่ค่ะ", "พบข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Stop)
End Try
End Sub
End Class
13. Run Project จะได้ดังนี้
- กดที่ Show Report
- กดที่ Print Dialog จะให้เลือกเครื่อง print และสั่งพิมพ์ได้เลยค่ะ
หากใคร Error
" Could not load file or assembly 'file:///C:\Program Files\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll' or one of its dependencies. The system cannot find the file specified. " ให้แก้ไขได้ตามนี
http://codingsecret.blogspot.com/2013/12/crystal-report-error-could-not-load.html
Download Semple Coding in vb.net Project
http://www.mediafire.com/download/kyqrk72zzvak3kq/CryReport.zip