 |
|
สอบถามเกี่ยวกับการรับข้อมูลผ่านตัว คอนโทรล Listbox ที่เลือกทีละหลายรายการเพื่อให้ข้อมูลแสดงใน Crystal Report |
|
 |
|
|
 |
 |
|

ตามรูปด้านบน ผมได้เลือก Location Name เป็น 201,202,203,204 และต้องการให้แสดงในรายงานทั้งหมดที่เราเลือกไว้ แต่ออกมาเฉพาะ Location Name 201 ส่วน Code ด้านล่าง ผมได้สร้าง Parameter ของ Store Proceder ไว้ ในการรับข้อมูลเพื่อมาแสดงในรายงาน ติดปัญหาอยู่ว่า ตัว Parameter ("@Location") [font=Verdana]ผมคิดว่า[/font]มันรับข้อมูลได้เพียงค่าเดียว เราต้องแก้ไข Code ยังไงครับ เพื่อจะให้ได้ค่าหลายค่า รบกวนยกตัวอย่างให้ดูหน่อยครับ หรือว่าไม่สามารถทำได้ รบกวนช่วยให้คำตอบหน่อยครับ
[font=Verdana]หมายเหตุ ทำไมผมไม่ใช้ Combobox เหมือนตัวอื่นในการรับค่า ตอบ เพราะผมไม่อย่างไปยุ่งกับ Store Proceder อีกเมื่อมีการเพื่มข้อมูลหรือเปลี่ยนแปลงข้อมูล[/font]
Code (VB.NET)
Private Sub btnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPreview.Click
Dim dsrv As New imsDataServices
Dim cmd As New SqlCommand
Dim da As New SqlDataAdapter
Dim ds As New DataSet
Dim dsItemList As New DataSet
Dim dt As New DataTable
Dim rpt As New ReportDocument
Dim rpt1 As New rptbalanceAdjustDetail
Dim chk As Boolean
Dim directory As String = My.Application.Info.DirectoryPath
'If chkDetail.Checked = True Then
'chk = 0
'End If
Try
'rpt.Load(Application.StartupPath & "\Dotnet\IntuitiveCustomReports\rptbalanceAdjustNoDetail.rpt")
rpt.Load(Application.StartupPath & "\Dotnet\IntuitiveCustomReports\rptbalanceAdjustDetail.rpt")
'rpt.Load("C:\IntuitiveDev\Projects\crystalReport\IntuitiveUI_MAC_BalanceAdjust\IntuitiveUI_MAC_BalanceAdjust\CrystalReport1.rpt")
With cmd 'Main
.Connection = dsrv.Connection
.CommandType = CommandType.StoredProcedure
.CommandText = "sp_MAC_balanceAdjust1"
'da.SelectCommand = cmd
.Parameters.AddWithValue("@Site", cboSite.Text)
.Parameters.AddWithValue("@Type", cboType.Text)
.Parameters.AddWithValue("@Location", ListLocation.Text)
' .Parameters.AddWithValue("@Location", chkLocation.Text)
'.Parameters.AddWithValue("@Location", ListLocation.Text)
.Parameters.AddWithValue("@YearCutStock", cboYear.Text)
.Parameters.AddWithValue("@MonthCutStock", cboMonth.Text)
.Parameters.AddWithValue("@strSortby", rdbModel.Checked)
End With
da.SelectCommand = cmd
da.Fill(ds, "dsBalanceAdjustviewer")
dt = ds.Tables(0)
' da = Nothing
rpt.SetDataSource(dt)
Me.CrystalReportViewer1.ReportSource = rpt
Me.CrystalReportViewer1.Show()
Catch exsql As SqlException
MsgBox(exsql.Message, MsgBoxStyle.Exclamation)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation)
End Try
End Sub
Tag : .NET, Ms SQL Server 2005, Crystal Report, VB.NET
|
|
 |
 |
 |
 |
Date :
2012-08-15 14:18:50 |
By :
s_oil_p |
View :
1446 |
Reply :
1 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ต้องแก้ StoredProcedure ให้ where Location in @Location ครับ
แล้วก็ ส่ง Parameter ให้อยู่ใน format แบบ ('201','202','203',...) เข้าไป query อ่ะครับ
ข้อมูลก็น่าจะได้ ตามที่ต้องการ
ถ้าไม่ตรงประเด็น รอ ท่านผู้รู้ท่านอื่นมาตอบ ก็แล้วกันครับ
|
 |
 |
 |
 |
Date :
2012-08-15 15:49:36 |
By :
lee_latee |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|