VS2005 - ASP.NET - ReportViewer Control - passing parameters to a server report

Hello Experts,

I'm trying to use the ReportViewer control to display a SQL Server 2005 Reporting Services report in my web page.  I've been able to get it to display a server report in one of my pages.  But what I need now it to be able to pass the report a parameter.

Basically we want to display stats for whoever visits the page.  So on page load I pull their Network ID.  I then want to pass that report their network ID, and have it show only thier stats.  

I'm very new to all of this and I have a deadline fast approaching so any help would be appreciated.  Also, if there's a better control or an easier way of doing this I'm open to it.  (as long as I'm able to implement it with my limited abilities)

Thanks!
GRCHELPDESK
LVL 2
GRCHELPDESKAsked:
Who is Participating?
 
Computer101Commented:
PAQed with points refunded (500)

Computer101
EE Admin
0
 
Éric MoreauSenior .Net ConsultantCommented:
0
 
GRCHELPDESKAuthor Commented:
Hey Emoreau,

Thanks for the feedback.  I've already been to this site, but I'm having trouble finding what I want there.  
0
Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

 
Éric MoreauSenior .Net ConsultantCommented:
have you seen question 10 and "Parameter prompting in local mode" ?
0
 
GRCHELPDESKAuthor Commented:
Hey Emoreau,

Yes, I've seen that.  What I need is to pass a parameter to a report in server mode, not local mode.  Thanks!
0
 
GRCHELPDESKAuthor Commented:
Ok, I've figured out how to do this.  I'm going to post the code for anyone else running into this.  This'll show you how to run a server report based on the user logged into the page.

1) Start a new ASP.NET page (VB)
2) Drop a hidden label on the screen to store the user id (call it lblAgentID)
3) Drop the ReportViewer control on the page
4) Paste the following code into your "page Load" event
5) Tweak the Server, Report path, and parameters to fit your scenario
6) Run the page

        'Paste me into Page Load event
       If Not IsPostBack Then

            'capture Logon_User
            Dim strLogonUser As String
            strLogonUser = Request.ServerVariables("LOGON_USER")

            'remove the domain from strLogonUser to leave the Agent ID
            If strLogonUser.IndexOf("\") > 0 Then
                'Separate the domain and user id
                Dim arrDomain = strLogonUser.Split("\")
                lblAgentID.Text = arrDomain(1)
            End If

            'Set the report Processing Mode
            ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote

            'Set the Report Viewer - Server URL & Report Path
            ReportViewer1.ServerReport.ReportServerUrl = New Uri("http://YOURSERVER/ReportServer")
            ReportViewer1.ServerReport.ReportPath = "/FOLDER/REPORT_NAME"

            'Setup parameter collection
            Dim pInfo As Microsoft.Reporting.WebForms.ReportParameterInfoCollection
            Dim paramList As New Generic.List(Of Microsoft.Reporting.WebForms.ReportParameter)

            'Insert parameter list - NTID is the parameter name my report is expecting
            paramList.Add(New Microsoft.Reporting.WebForms.ReportParameter("NTID", lblAgentID.Text.ToUpper, False))
            ReportViewer1.ServerReport.SetParameters(paramList)
            pInfo = ReportViewer1.ServerReport.GetParameters()

            'Refresh the report
            ReportViewer1.ServerReport.Refresh()

        End If

There you go, I hope that helps.
GRCHELPDESK
0
 
darelstokesCommented:
You can also pass these parameters rather easily as follows:

        ReportParameter param1 = new ReportParameter("param1", "value1");
        ReportParameter param2 = new ReportParameter("param2", "value2");
        ReportViewer1.ServerReport.SetParameters(new ReportParameter[] { param1, param2 });

Posted as a clarification to us C# guys :)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.