คือตอนนี้ติดตรงเราจะนำค่า parameters ใน VB ไปแสดงใน MS Report Builder 3.0 อ่ะค่ะ ไม่รู้จะต้องทำไง แต่แอดค่าไว้ที่ MS Report Builder ไว้รอแล้วค่ะ ค่าที่จะแอดนี่เป็นวันที่อ่ะค่ะ ได้จาก DatimePicker จะให้แสดงวันเริ่มต้นและสิ้นสุดอ่ะค่ะ
อย่างในรูปนี่เป็นหน้า report ของ MS Report Builder คือการป้อนมือผ่าน parameters ค่าจะออกตามที่เราป้อนตามวันที่อ่ะค่ะ
พอป้อนจะได้ดังนี้
ที่ต้องการคือ ค่าที่จะป้อนนั้นอ่ะ ต้องไปแสดงที่ ReportViewer ใน VS Express 2012 คือค่าที่ได้จากการเลือก DatimePicker อะค่ะ
จะต้องให้มันติดที่ตัว Report เหมือนอย่างที่ทำใน MS Report Builder ต้องทำไงค่ะเพิ่มตรงไหนค่ะ แบบภาพนี้อ่ะค่ะ
ตอนนี้มีcode แบบนี้ค่ะ Code (VB.NET)
dt_UseDrug.Columns.Clear()
dt_UseDrug.Columns.Add("ln_CassetteNo", GetType(String))
dt_UseDrug.Columns.Add("DrugCd", GetType(String))
dt_UseDrug.Columns.Add("DrugName", GetType(String))
dt_UseDrug.Columns.Add("DispensedDose", GetType(String))
dt_UseDrug.Columns.Add("PatientName", GetType(String))
'------------------RP-------------------------
ds.Tables().Clear()
'********************************************
Dim TS As String = cbTSH.Text & ":" & cbTSM.Text
Dim TE As String = cbTEH.Text & ":" & cbTEM.Text
StartDate = DTS.Value.ToString("yyyy/MM/dd")
EndDate = DTE.Value.ToString("yyyy/MM/dd")
TimeStart = TS
TimeEnd = TE
Dim DSP As Date = StartDate
Dim DEP As Date = EndDate
Dim myformat() As String = {"yyyy-MM-dd"}
'Dim SDate, EDate As String
Dim i As Integer
For i = 0 To myformat.Length - 1
StartDate = DSP.ToString(myformat(i), DateTimeFormatInfo.InvariantInfo)
EndDate = DEP.ToString(myformat(i), DateTimeFormatInfo.InvariantInfo)
'Dim AddY As Date = Now.AddYears(-543)
'MessageBox.Show(StartDate)
'MessageBox.Show(EndDate)
Next i
'********************************************
'ds = clsP.UseDrug(StartDate, EndDate)
ds = clsP.UseDrug(StartDate, EndDate, TimeStart, TimeEnd)
If ds.Tables(0).Rows.Count = 0 Then MsgBox("ไม่มีข้อมูล") : Exit Sub
dt_UseDrug.Rows.Clear()
'Dim courow As Integer
'courow = ds.Tables(0).Rows.Count
'For i As Integer = 0 To courow - 1
For i = 0 To ds.Tables(0).Rows.Count - 1
dt_UseDrug.Rows.Add(New Object() {ds.Tables(0).Rows(i).Item("ln_CassetteNo").ToString, _
ds.Tables(0).Rows(i).Item("DrugCd").ToString, _
ds.Tables(0).Rows(i).Item("DrugName").ToString, _
ds.Tables(0).Rows(i).Item("DispensedDose").ToString})
Next
'---------------------------------------------
ds_UseDrug.Tables().Clear()
ds_UseDrug.Tables.Add(dt_UseDrug)
'*************************************************************
frm_ShowRP.ReportViewer1.LocalReport.DataSources.Clear()
frm_ShowRP.ReportViewer1.LocalReport.DataSources.Add(New ReportDataSource("DSet_UseDrug", ds_UseDrug.Tables("DSet_UseDrug")))
frm_ShowRP.ReportViewer1.LocalReport.ReportPath = "D:\Proud_UseDrug.rdlc"
frm_ShowRP.ReportViewer1.RefreshReport()
frm_ShowRP.Show()
'*************************************************************
Dim objParameter As ReportParameter
zobjParameter = New ReportParameter(strParamName, strParamValue)
Me.objReportViewer.ServerReport.SetParameters(zobjParameter)
Code (VB.NET)
'Declaration
Public Sub SetParameters ( _
parameter As ReportParameter _
)
'Usage
Dim instance As Report
Dim parameter As ReportParameter
instance.SetParameters(parameter)
Tag : .NET, Ms SQL Server 2012, VS 2012 (.NET 4.x)