VB.net ส่งค่า Parameter ไปแสดงใน Crystal Report ไมไ่ด้แต่กลับขึ้นเป็นหน้า Enter Parameter Value
Code ในส่วนของการออกรีพอร์ท
Code (VB.NET)
Private Sub Reporting(PushBillNumber As String)
Dim rpt As New ReportDocument
Dim directory As String = My.Application.Info.DirectoryPath
Dim SQL As String
Dim dt As DataTable
'dtgProduct.Rows(dtgProduct.CurrentCellAddress.Y).Cells("Product_name").Value
SQL = "SELECT PushBill.PB_id, PushBill.PB_customer, Customer.customer_name, Customer.customer_address, Customer.customer_tel_num, PushBill.PB_date, PushBill.PB_employee, PushBill.PB_memo, PushBill_Detail.Sales_Credit_id, PushBill_Detail.Sales_Credit_date, PushBill_Detail.Sales_Credit_Value, PushBill_Detail.Date_Quantity, PushBill_Detail.Interest_value, PushBill_Detail.PB_desc" &
" FROM((Customer INNER JOIN PushBill ON Customer.customer_id = PushBill.PB_customer) INNER JOIN employee On PushBill.PB_employee = employee.emp_id) INNER JOIN PushBill_Detail On PushBill.PB_id = PushBill_Detail.PB_id" &
" WHERE PushBill.PB_id='" & PushBillNumber & "'"
dt = exeSQL(SQL)
rpt.Load(Machine.Image_path & "\Report\RptPushBill.rpt")
Company_name = "TEST Company_name"
Company_address = "TEST Company_address"
Company_Telnum = "TEST Company_Telnum"
Company_Tax_id = "TEST Company_Tax_id"
rpt.SetParameterValue("Company_name", Company_name)
rpt.SetParameterValue("Company_address", Company_address)
rpt.SetParameterValue("Company_telnum", Company_Telnum)
rpt.SetParameterValue("Company_Tax_id", Company_Tax_id)
rpt.Database.Tables(0).SetDataSource(dt)
Me.CrystalReportViewer1.ReportSource = rpt
Me.CrystalReportViewer1.Refresh()
rpt.Refresh()
'CrystalReportViewer1.PrintReport()
End Sub
เมื่อรันแล้วกลับมีหน้าจอให้ใส่ค่า Parameter
เมื่อใส่ค่าเรียบร้อยก็จะเป็นค่าที่ใส่ไปในจอเมื่อสักครู่
-----------------------------------------------------------------------------------------------
ทำอย่างไรให้ค่าที่เรากำหนดใน CODE ผ่านตัวแปร ไปอยู่บนรีพอร์ทเลยโดยไม่ต้องมีหน้าให้ใส่อีกรอบTag : .NET, Ms Access, Crystal Report, VS 2015 (.NET 4.x), Windows
Date :
2021-11-06 14:27:56
By :
satanpig
View :
1231
Reply :
2
rpt.Database.Tables(0).SetDataSource(dt)
rpt.SetParameterValue("Company_name", Company_name)
rpt.SetParameterValue("Company_address", Company_address)
rpt.SetParameterValue("Company_telnum", Company_Telnum)
rpt.SetParameterValue("Company_Tax_id", Company_Tax_id)
Me.CrystalReportViewer1.ReportSource = rpt
Me.CrystalReportViewer1.Refresh()
rpt.Refresh()
ลองสลับตำแหน่งประมาณนี้ดูครับ
Date :
2021-11-08 09:47:38
By :
Kenzero
command.Parameters.Clear()
command.Parameters.AddWithValue("@dtpStart", strdat)
command.Parameters.AddWithValue("@dtpEnd", enddat)
adapterSum.SelectCommand = command
Dim DataSt As New DataSet
Dim reportset As New rptSummarySV
Dim dtAmen As DataTable
adapterSum.Fill(DataSt, "TCJ_PSRequestAll")
dtAmen = DataSt.Tables(0)
reportset.Database.Tables(0).SetDataSource(dtAmen)
Try
Dim dt As DataTable
dt = DataSt.Tables(0)
adapterSum = Nothing
'reportset.SetDataSource()
reportset.SetParameterValue("DateFrom", strdat)
reportset.SetParameterValue("DateTo", enddat)
CrystalReportViewer1.ReportSource = reportset
CrystalReportViewer1.Show()
Catch ex As Exception
MsgBox(ex.Message)
End Try
ลองดูครับ
strdat , enddat คือ Publie นะครับ โยนค่าไปหาหน้า crystal แล้วหน้า crystal ทำ parameter fields ไว้ ครับ
Date :
2021-11-11 13:21:54
By :
เด็กมือใหม่
Load balance : Server 04