Solved

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

Posted on 2007-03-20
8
627 Views
Last Modified: 2010-08-05
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
0
Comment
Question by:GRCHELPDESK
8 Comments
 
LVL 69

Expert Comment

by:Éric Moreau
Comment Utility
0
 
LVL 2

Author Comment

by:GRCHELPDESK
Comment Utility
Hey Emoreau,

Thanks for the feedback.  I've already been to this site, but I'm having trouble finding what I want there.  
0
 
LVL 69

Expert Comment

by:Éric Moreau
Comment Utility
have you seen question 10 and "Parameter prompting in local mode" ?
0
How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

 
LVL 2

Author Comment

by:GRCHELPDESK
Comment Utility
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
 
LVL 2

Author Comment

by:GRCHELPDESK
Comment Utility
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
 
LVL 1

Accepted Solution

by:
Computer101 earned 0 total points
Comment Utility
PAQed with points refunded (500)

Computer101
EE Admin
0
 

Expert Comment

by:darelstokes
Comment Utility
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

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Suggested Solutions

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…
In an ASP.NET application, I faced some technical problems. In this article, I list them out and show the solutions that I found.  I hope it will be useful. Problem: After closing a pop-up window, the parent page should be refreshed automaticall…
This video discusses moving either the default database or any database to a new volume.
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

763 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now