Dim OrderDt As ParameterValues = New ParameterValues
Dim OrderDtDisVal As ParameterDiscreteValue = New ParameterDiscreteValue()
Dim ConInfo As New TableLogOnInfo
Try
Dim CR As New ReportDocument
'Dim crSection As Section
CR.PrintOptions.PrinterName = Me.cboSelectPrint.SelectedItem
CR.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4
'.ReportPath = "D:\BillOrg.rpt"
CR.Load(gReportPath + "BillOrg.rpt", OpenReportMethod.OpenReportByTempCopy)
For Each Table As CrystalDecisions.CrystalReports.Engine.Table In CR.Database.Tables()
ConInfo = Table.LogOnInfo
ConInfo.ConnectionInfo.UserID = gReportUser '"sa"
ConInfo.ConnectionInfo.Password = gReportPassword ' "123456789"
ConInfo.ConnectionInfo.ServerName = gReportServer '"Server"
ConInfo.ConnectionInfo.DatabaseName = gReportDatabase '"Database"
Table.ApplyLogOnInfo(ConInfo)
Next
'Then I add my parameters like so:
' Declare Order Date parameter variable
OrderDt = New ParameterValues
OrderDtDisVal = New ParameterDiscreteValue()
'Set OrderDate text field as the discrete value
OrderDtDisVal.Value = Me.property_DEPT
OrderDt.Add(OrderDtDisVal)
' Apply current parameter values
CR.DataDefinition.ParameterFields("DEPARTMENT").ApplyCurrentValues(OrderDt)
OrderDt = New ParameterValues
OrderDtDisVal = New ParameterDiscreteValue()
'Set OrderDate text field as the discrete value
OrderDtDisVal.Value = Me.property_BILLNUM
OrderDt.Add(OrderDtDisVal)
' Apply current parameter values
CR.DataDefinition.ParameterFields("BILLNO").ApplyCurrentValues(OrderDt)
OrderDt = New ParameterValues
OrderDtDisVal = New ParameterDiscreteValue()
'Set OrderDate text field as the discrete value
OrderDtDisVal.Value = Me.cboLanguage.SelectedItem
OrderDt.Add(OrderDtDisVal)
' Apply current parameter values
CR.DataDefinition.ParameterFields("Language").ApplyCurrentValues(OrderDt)
'Then I print the report using the PrintToPrinter method
'Print the report
CR.PrintToPrinter(1, False, 0, 0)
Catch ex As Exception
MessageBox.Show(ex.Message, "Error Report", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Dim OrderDt As ParameterValues = New ParameterValues
Dim OrderDtDisVal As ParameterDiscreteValue = New ParameterDiscreteValue()
Dim ConInfo As New TableLogOnInfo
Try
Dim CR As New ReportDocument
'กำหนดเครื่องปริ้นที่ต้องการปริ้นหรือถ้าตั้ง Default อยู่แล้วก็ไม่ต้องก็ได้ครับ
CR.PrintOptions.PrinterName = "ชื่อเครื่องปริ้น"
'กำหนดขนาดของกระดาษ ตามโค๊ดจะเป็น A4
CR.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4
'ที่อยู่ของ Report
CR.Load("C:\BillOrg.rpt", OpenReportMethod.OpenReportByTempCopy)
'ติดต่อฐานข้อมูลของ Report
For Each Table As CrystalDecisions.CrystalReports.Engine.Table In CR.Database.Tables()
ConInfo = Table.LogOnInfo
ConInfo.ConnectionInfo.UserID = gReportUser '"sa"
ConInfo.ConnectionInfo.Password = gReportPassword ' "123456789"
ConInfo.ConnectionInfo.ServerName = gReportServer '"Server"
ConInfo.ConnectionInfo.DatabaseName = gReportDatabase '"Database"
Table.ApplyLogOnInfo(ConInfo)
Next
'ตัวแปรที่ 1 ( Parameter 1)
' เพิ่มตัวแปรที่ต้องการส่งไป เช่น ต้องการให้รายงานแสดงตามวันที่ แผนก รายการ ฯ
OrderDt = New ParameterValues
OrderDtDisVal = New ParameterDiscreteValue()
'Set OrderDate text field as the discrete value
OrderDtDisVal.Value = "ค่าที่ต้องการส่งสำหรับตัวแปรที่ 1"
OrderDt.Add(OrderDtDisVal)
' ส่งค่า ("DEPARTMENT" คือพารามิเตอร์ที่ต้องการให้แสดงครับ )
CR.DataDefinition.ParameterFields("DEPARTMENT").ApplyCurrentValues(OrderDt)
'ตัวแปรที่ 2 ( Parameter 2) เผื่อมีหลายๆตัวแปรครับ
OrderDt = New ParameterValues
OrderDtDisVal = New ParameterDiscreteValue()
'Set OrderDate text field as the discrete value
OrderDtDisVal.Value = "ค่าที่ต้องการส่งสำหรับตัวแปรที่ 2"
OrderDt.Add(OrderDtDisVal)
' Apply current parameter values
CR.DataDefinition.ParameterFields("BILLNO").ApplyCurrentValues(OrderDt)
'Then I print the report using the PrintToPrinter method
'ปริ้น ใช้ตามนี้เลยก็ได้ครับถ้าใช้แค่ 1 Copy
CR.PrintToPrinter(1, False, 0, 0)
Catch ex As Exception
MessageBox.Show(ex.Message, "Error Report", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try