Groups | Blog | Home
all groups > sql server reporting services > may 2007 >

sql server reporting services : Programmatically change a textbox's contents


Andrew
5/23/2007 3:10:10 PM
Quick question.... I have a C# ASP.Net (2.0) webpage with a ReportViewer
control on it. In the code-behind I set the datasource of the report and
then view the report data:

DataSet ds = DBProvider.GetDataSet(SQL, DateFrom, DateTo);
rvRR310.LocalReport.ReportPath = "RR310.rdlc";
rvRR310.LocalReport.DataSources.Clear();
rvRR310.LocalReport.DataSources.Add(new
ReportDataSource("Reports_stp_RR310_Export", ds.Tables[0]));

"DBProvider" is a class I made to talk to the SQL Server and "RR310.rdlc" is
the actual report itself. The query that is executed accepts a couple
parameters (start date and end date) for the data that is to be returned.

My issue is not with this part, as everything up to this point works great.
What I am trying to figure out how to do is access the report itself, so I
can change the contents of a textbox I put there. I want to take the query
parameters and stuff them into the report textbox so I can have it say
something like "Date Range: <start> to <end>". The problem is I can't
figure out how to write the code to allow me to do this.

Anyone have a suggestion or pointer? Thanks!

-- Andrew

EMartinez
5/23/2007 6:35:16 PM
[quoted text, click to view]


If I understand you correctly, you should be able to achieve this by
referencing the report parameters. Something like this should work as
expressions in the textbox controls in the report itself.
=Parameters!StartDate.Value
=Parameters!EndDate.Value

Regards,

Enrique Martinez
Sr. Software Consultant
Andrew
5/24/2007 7:23:08 AM
I would agree with you if the report knew about the parameters, but the
report never sees them. As shown in the code snippet, I pass the SQL stored
procedure, and the arguments, to a method of my class that talks to the SQL
Server. It passes back a dataset which I then assign to the report. The
report only knows about the data, not any parameters.

Let me ask the question another way....

From the .cs page that has the ReportViewer control, how can I change the
text of a TextBox inside the report. Never mind where or what the content
is coming from, just, how do I change the text from outside the report
itself and at runtime?


[quoted text, click to view]

Andrew
5/24/2007 8:02:44 AM
I found the answer to my question.....

First step is to set up a Report Parameter (as many as you need for whatever
it is you need to do).

Second, add a TextBox to the report, and then under Expressions, set it to
display the Parameter you desire.

Last, in the .cs page that loads the ReportViewer control, add the following
code:

ReportParameter[] params = new ReportParameter[2];
params[0] = new ReportParameter("DateFrom", "ProductShipped", false);
params[1] = new ReportParameter("DateTo", "@parameter1", false);
this.reportViewer.LocalReport.SetParameters(params);

Of course, change the names and size to suit your needs.

Pretty simple and straightforward, and works very nicely with what I wanted
to do.

-- Andrew


[quoted text, click to view]

AddThis Social Bookmark Button