?
Solved

Visual studio 2008: passing parameters to crystal reports  for VS2008 from asp.net 2.0 Web From using VB.net 2008

Posted on 2012-03-16
6
Medium Priority
?
506 Views
Last Modified: 2012-04-19
I have modified a crystal reports for VS2008 label report to print membership cards on business card stock.  Using the crystal report default parameter prompt, I am able to enter member Id and the report is displayed.  When I click on the crystal report viewer's print icon the export pop-up is displayed.  However when I click on the export button, the default prompt screen is displayed and the report is not printed.

 See the attached document for screen prints and my asp.net vb code.  

The reports record selection is  retrieving the data from a SQL2008 Server DB based upon the membersIDs  parameter that contains the ID's entered in the report default parameter prompt in the crystal report viewer.  Can anyone advise me what I have to do to get the report to print.  

Do I have to modify my ASP.net screen to add an ASP.net listbox od CheckListBox linked to the MemberID column of the DBTable to collect the ID's?  If so can anyone provide me with a code sample for collecting and passing mutiple  selected ID's
MembersCardsreport.doc
0
Comment
Question by:pgkdavefdd
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
6 Comments
 
LVL 101

Expert Comment

by:mlmcc
ID: 37730651
From the preview, arer you clicking the export or print button?

mlmcc
0
 

Author Comment

by:pgkdavefdd
ID: 37730772
The print button.  I have also clicked on the export button and it does not work either.
0
 

Author Comment

by:pgkdavefdd
ID: 37730834
The following is code I modified from another form in which I pre-fill a list box  with numbers to select a report number and the numbers are put into an array.  See GetDefaultValuesFromParameterField(MemberTransmittalReport)
            defaultParameterValuesList.DataBind() Bolded in code sample below:

Imports System.Collections
Imports System.Web.UI.WebControls
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared


Partial Class MemberTransmittal
    Inherits System.Web.UI.Page

    Private MemberTransmittalReport As ReportDocument
    Private Const PARAMETER_FIELD_NAME As String = "MemberIDs"
    Private Sub SetTableLocation(ByVal tables As Tables)
        Dim connectionInfo As New ConnectionInfo()
        connectionInfo.ServerName = "MYServer.com"
        connectionInfo.DatabaseName = "CWVNat"
        connectionInfo.UserID = "MY_ID"
        connectionInfo.Password = "MY_Password"
        For Each table As CrystalDecisions.CrystalReports.Engine.Table In tables
            Dim tableLogOnInfo As TableLogOnInfo = table.LogOnInfo
            tableLogOnInfo.ConnectionInfo = connectionInfo
            table.ApplyLogOnInfo(tableLogOnInfo)
        Next
    End Sub
    Private Sub ConfigureCrystalReports()
        MemberTransmittalReport = New ReportDocument()
  Dim reportPath As String =  Server.MapPath("SelectCWVMembershipCards.rpt")
        MemberTransmittalReport.Load(reportPath)
        SetTableLocation(MemberTransmittalReport.Database.Tables)
        Dim myArrayList As ArrayList = New ArrayList()

       If Not IsPostBack Then
            defaultParameterValuesList.DataSource = GetDefaultValuesFromParameterField(MemberTransmittalReport)
            defaultParameterValuesList.DataBind()
            myArrayList.Add("1176")
            myArrayList.Add("1389")
            myArrayList.Add("1450")
            myArrayList.Add("1563")
            myArrayList.Add("1690")
            myArrayList.Add("2801")
            myArrayList.Add("4942")
            myArrayList.Add("11855")
            myArrayList.Add("11895")
            myArrayList.Add("11898")
            Session("myArrayList") = myArrayList
        Else
            myArrayList = CType(Session("myArrayList"), ArrayList)
        End If


        SetCurrentValuesForParameterField(MemberTransmittalReport, myArrayList)
        CrystalReportViewer1.ReportSource = MemberTransmittalReport
    End Sub

    Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
        ConfigureCrystalReports()
    End Sub

    Private Sub SetCurrentValuesForParameterField(ByVal myReportDocument As ReportDocument, ByVal myArrayList As ArrayList)
        Dim currentParameterValues As ParameterValues = New ParameterValues()

        For Each submittedValue As Object In myArrayList
            Dim myParameterDiscreteValue As ParameterDiscreteValue = New ParameterDiscreteValue()
            myParameterDiscreteValue.Value = submittedValue.ToString()
            currentParameterValues.Add(myParameterDiscreteValue)
        Next

        Dim myParameterFieldDefinitions As ParameterFieldDefinitions = myReportDocument.DataDefinition.ParameterFields
        Dim myParameterFieldDefinition As ParameterFieldDefinition = myParameterFieldDefinitions(PARAMETER_FIELD_NAME)
        myParameterFieldDefinition.ApplyCurrentValues(currentParameterValues)
    End Sub

    Private Function GetDefaultValuesFromParameterField(ByVal myReportDocument As ReportDocument) As ArrayList
        Dim myParameterFieldDefinitions As ParameterFieldDefinitions = myReportDocument.DataDefinition.ParameterFields
        Dim myParameterFieldDefinition As ParameterFieldDefinition = myParameterFieldDefinitions(PARAMETER_FIELD_NAME)
        Dim defaultParameterValues As ParameterValues = myParameterFieldDefinition.DefaultValues
        Dim myArrayList As ArrayList = New ArrayList()

        For Each myParameterValue As ParameterValue In defaultParameterValues
            If (Not myParameterValue.IsRange) Then
                Dim myParameterDiscreteValue As ParameterDiscreteValue = CType(myParameterValue, ParameterDiscreteValue)
                myArrayList.Add(myParameterDiscreteValue.Value.ToString())
            End If
        Next

        Return myArrayList
    End Function


    Protected Sub redisplay_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles redisplay.Click
        Dim myArrayList As ArrayList = New ArrayList()
        For Each item As ListItem In defaultParameterValuesList.Items
            If item.Selected Then
                myArrayList.Add(item.Value)
            End If
        Next
        Session("myArrayList") = myArrayList
        ConfigureCrystalReports()
    End Sub
End Class

Can Anyone advise me how to modify this to pass the selected values directly from the listbox if I bind it to the database.  The list box is called "myArrayList"
0
 

Accepted Solution

by:
pgkdavefdd earned 0 total points
ID: 37731810
By changing
 If Not IsPostBack Then
            defaultParameterValuesList.DataSource = GetDefaultValuesFromParameterField(MemberTransmittalReport)
            defaultParameterValuesList.DataBind()
            myArrayList.Add("1176")
            myArrayList.Add("1389")
            myArrayList.Add("1450")
            myArrayList.Add("1563")
            myArrayList.Add("1690")
            myArrayList.Add("2801")
            myArrayList.Add("4942")
            myArrayList.Add("11855")
            myArrayList.Add("11895")
            myArrayList.Add("11898")
            Session("myArrayList") = myArrayList
        Else
            myArrayList = CType(Session("myArrayList"), ArrayList)
        End If

To
        If Not IsPostBack Then
            defaultParameterValuesList.DataBind()
            Session("myArrayList") = myArrayList
        Else
            myArrayList = CType(Session("myArrayList"), ArrayList)
        End If
I was able to get my asp.net form to work with the bound listbox and the report now prints.
0

Featured Post

New benefit for Premium Members - Upgrade now!

Ready to get started with anonymous questions today? It's easy! Learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my asp.net applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
Today is the age of broadband.  More and more people are going this route determined to experience the web and it’s multitude of services as quickly and painlessly as possible. Coupled with the move to broadband, people are experiencing the web via …
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
In this video, Percona Director of Solution Engineering Jon Tobin discusses the function and features of Percona Server for MongoDB. How Percona can help Percona can help you determine if Percona Server for MongoDB is the right solution for …
Suggested Courses

765 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question