12/13/2013


ตัวอย่างการทำ 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

Posted on Friday, December 13, 2013 by nuyingnaja

วันนี้เล่น Crystal Report ใน vb.net  พอเขียนโปรแกรมและแต่ง Report ให้ Connect กับ dataset เสร็จเรียบร้อยแล้ว  ติดปัญหาที่หาไฟล์ไม่เจอ ดังนี้




" 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. "

มีวิธีแก้ไขปัญหานี้
เลือก App.config แล้ว copy ข้อความนี้ลงไป




<?xml version="1.0"?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>
</configuration>

เพียงเท่านี้ก็สามารถแสดง Report ได้แล้วค่ะ

Posted on Friday, December 13, 2013 by nuyingnaja

10/20/2013

Public Sub ConnectionSql()

        Dim Conn As SqlConnection = New SqlConnection
        Dim IP As String = "192.000.XXX.XXX"
        Dim DBName As String = "Store"
        Dim Username As String = "MyAdmin"
        Dim Password As String = "password"


        Try

            Conn.Close()
            With Conn
                If .State = ConnectionState.Open Then .Close() : MsgBox("Can not connect to database server !") : Exit Sub
                .ConnectionString = "Data Source=" & IP & ";Initial Catalog=" & DBName & ";Persist Security Info=True;User ID=" & Username & ";Password=" & Password & ""
                .Open()
            End With

        Catch ex As Exception
            MsgBox("Can not connect to database server !")
         End Try


End Sub

Posted on Sunday, October 20, 2013 by nuyingnaja

9/22/2013

ค้นหา  Column ใน DataTable

If Not dtLawWord.Columns.Contains("ID") Then
                MessageBox.Show("Can not Find Columns ID")
End If

Posted on Sunday, September 22, 2013 by nuyingnaja

9/19/2013


Imports Microsoft.Office.Interop.Word
Imports Microsoft.Office.Interop
Imports Microsoft.Office

Public Class classWord

    Public Sub GetWord()


        Dim WdApp As New Application

        Dim WdDoc As Word.Document

        WdDoc = WdApp.Documents.Open("D:\text.doc")

        Dim rStart, rStop As Integer

        rStart = 100

        rStop = 200

        WdDoc.Range(Start:=rStart, End:=rStop).Delete()

        WdDoc.Save()

        WdDoc.Close()

        WdDoc = Nothing

        WdApp.Quit()

        WdApp = Nothing

    End Sub

End Class

Posted on Thursday, September 19, 2013 by nuyingnaja

9/17/2013


For Each oRow As DataGridViewRow In DataGridView1.Rows

            TextBox1.Text = oRow.Cells(1).Value

Next

Posted on Tuesday, September 17, 2013 by nuyingnaja


Private Sub CopyFileToFolder(ByVal FileName As String, ByVal FileNameNew As String)

        File.Copy(FileName, FileNameNew, True)

End Sub

Posted on Tuesday, September 17, 2013 by nuyingnaja