954,535 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Pass multiple values to single fields in Crystal Report

Dear all,

I have tested my code in order to pass single value to single parameter field in crystal report from VB.NET Form, it is ok but the problem is that I want to pass multiple values to only one parameter field called "Product Name" and it displays only one last record.

I want to display like this

Receipt : 0001
Product Name
pencil
pen
stamp
book

Here is my code :

Sub PrintReceipt()
       If conn.State = ConnectionState.Closed Then conn.Open()
       Dim sqlstr As String
       Dim frmchildPOS As FrmPOS =
CType(Application.OpenForms("FrmPOS"), FrmPOS)
       Dim frmchildPrintReceipt As New FrmPrintReceipt
       frmchildPrintReceipt.MdiParent = MdiParent

       sqlstr = "SELECT TblReceiptMaster.ReceiptID,
TblReceiptMaster.ReceiptDate, " & _
       "TblUserAccount.UserName, TblProductList.ProductName, " & _
       "TblReceiptDetail.SaleQTY, TblReceiptDetail.SalePrice,
TblReceiptDetail.Discount FROM TblProductList INNER JOIN
TblReceiptDetail ON TblProductList.ProductID =
TblReceiptDetail.ProductID INNER JOIN TblReceiptMaster ON
TblReceiptDetail.ReceiptID = TblReceiptMaster.ReceiptID INNER JOIN
TblUserAccount ON TblReceiptMaster.EmpID = TblUserAccount.EmpID "

       Dim da As New SqlDataAdapter(sqlstr, conn)
       Dim ds As New DataSet
       da.Fill(ds, "SaleReceipt")

       Dim Rpt As New PrintReceipt

       Dim paramValues As New ParameterValues
       Dim paramDiscreteValue As New ParameterDiscreteValue

       For i As Integer = 0 To ds.Tables("SaleReceipt").Rows.Count - 1
           'find if receiptID in dataset = receiptID in LblReceiptNumber.Text
           If CType(ds.Tables(0).Rows(i).Item(0), Integer) =
CType(frmchildPOS.LblReceiptNumber.Text, Integer) Then
               Rpt.SetParameterValue("receipt",
Format(ds.Tables("SaleReceipt").Rows(i).Item(0), "00000"))
               Rpt.SetParameterValue("datetime",
FormatDateTime(ds.Tables("SaleReceipt").Rows(i).Item(1)))
               Rpt.SetParameterValue("cashier",
ds.Tables("SaleReceipt").Rows(i).Item(2))
               paramDiscreteValue = New ParameterDiscreteValue
               paramDiscreteValue.Value =
ds.Tables("SaleReceipt").Rows(i).Item(3)
               paramValues.Add(paramDiscreteValue)
           End If
       Next

       'pass value to product name field in crystal report
       <strong>Rpt.SetParameterValue("productname", (paramValues))</strong>

       'assign report source to crystal report
       frmchildPrintReceipt.CrystalReportViewer1.ReportSource = Rpt

       'print report
       frmchildPrintReceipt.Show()
       conn.Close()
       Rpt = Nothing
   End Sub


I already set parameter field "productname" for allowing to multiple
values, but it is still the same.

Thanks for your helping

pagnarith
Newbie Poster
1 post since Mar 2011
Reputation Points: 10
Solved Threads: 0
 
__avd
Posting Genius (adatapost)
Moderator
8,648 posts since Oct 2008
Reputation Points: 2,136
Solved Threads: 1,241
 
ggdal
Newbie Poster
1 post since Jun 2011
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: