Solved

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

Posted on 2007-03-20
8
633 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
[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
8 Comments
 
LVL 70

Expert Comment

by:Éric Moreau
ID: 18761211
0
 
LVL 2

Author Comment

by:GRCHELPDESK
ID: 18764588
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 70

Expert Comment

by:Éric Moreau
ID: 18765659
have you seen question 10 and "Parameter prompting in local mode" ?
0
MS Dynamics Made Instantly Simpler

Make Your Microsoft Dynamics Investment Count  & Drastically Decrease Training Time by Providing Intuitive Step-By-Step WalkThru Tutorials.

 
LVL 2

Author Comment

by:GRCHELPDESK
ID: 18766188
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
ID: 18773847
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
ID: 19097787
PAQed with points refunded (500)

Computer101
EE Admin
0
 

Expert Comment

by:darelstokes
ID: 26138556
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

[Webinar] Code, Load, and Grow

Managing multiple websites, servers, applications, and security on a daily basis? Join us for a webinar on May 25th to learn how to simplify administration and management of virtual hosts for IT admins, create a secure environment, and deploy code more effectively and frequently.

Question has a verified solution.

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

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
Finding and deleting duplicate (picture) files can be a time consuming task. My wife and I, our three kids and their families all share one dilemma: Managing our pictures. Between desktops, laptops, phones, tablets, and cameras; over the last decade…

738 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