 |
|
ช่วยทีค่ะ ติดตรงการนำค่า parameters ใน VB ไปแสดงใน MS Report Builder 3.0 แนะนำด้วยค่ะ |
|
 |
|
|
 |
 |
|
คือตอนนี้ติดตรงเราจะนำค่า 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()
'*************************************************************
เพิ่มไปแค่ตัว Rows ของค่าใน report เองค่ะ แต่ค่า parameters เพิ่มไม่เป็นอ่ะค่ะ แนะนำด้วยค่ะ
** ถ้าเราสร้าง ตัว parameters ไว้ที่ MS Report Builder แล้ว ไฟล์ report เปิดไม่ได้นะค่ะ จะบอกมาแบบนี้อ่ะค่ะ

ถ้าตาม 2 code นี้ใช้งานยังไงค่ะ
Code (VB.NET)
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)
|
ประวัติการแก้ไข 2013-09-13 15:55:25 2013-09-13 15:58:35 2013-09-13 16:02:50 2013-09-13 16:28:10
|
 |
 |
 |
 |
Date :
2013-09-13 15:52:41 |
By :
nunidnaja |
View :
1251 |
Reply :
2 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
#NO 1 ในกรณีที่ ผ่านค่าพารามอเตอร์ หรือหลายฯค่า
Code (VB.NET)
frm_ShowRP.ReportViewer1LocalReport.SetParameters(New ReportParameter() {New ReportParameter("StartDate", "212224"), New ReportParameter("EndDate", "236248")})
[x] ผม "ทุนน้อย" ในอนาคตผมจะใช้ VS 20XX Express เป็นหลัก (ลดปัญหาด้านลิขสิทธิ์ และลดค่าใช้จ่าย)
แน่นอนว่า "ความน่าเชื่อถือย่อมลดลงตามไปด้วย" แต่ผมยอมรับได้
|
 |
 |
 |
 |
Date :
2013-09-13 18:58:54 |
By :
ผ่านมา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|