ตัวอย่างการทำ Crystal Report แบบง่ายๆ ถ้าใน Visual Studio ไม่มี  Crystal Report  เหมือนในรูปให้ติดตั้ง Crystal Report ก่อนจะเริ่มทำนะค่ะ

วิธีการติดตั้ง Crystal Report ดังลิ้งนี้ค่ะ
http://codingsecret.blogspot.com/2014/08/install-crystal-report-on-visual-studio.html


เมื่อติดตั้งเสร็จเรียนร้อยจะมี Crystal Report เหมือนในรูป

1. New Project >>  ใน Form1  ให้ลาก  CrystalReportViewer ไว้ใน Form 1 จะได้เหมือนในรูป


2. ลาก PrintDialog เข้ามาใน Form1

3.  Add new item >> Data >> DataSet


4. ดู Toolbox เลือก DataTable ลากลงใน DataSet1.xsd

 5. คลิ๊กขวา >> Add >> Column สร้างตัวแปรเพื่อรับค่าที่จะมาส่งมา จนครบ >> กำหนด DataType ให้ถูกต้อง

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