Wednesday, March 7, 2012

Programmatically change a textbox's contents

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!
-- AndrewOn May 23, 5:10 pm, "Andrew" <andrewr2k1@.n0r3ply_hotmail.com> wrote:
> 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
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|||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?
"EMartinez" <emartinez.pr1@.gmail.com> wrote in message
news:1179970516.364360.86270@.m36g2000hse.googlegroups.com...
> On May 23, 5:10 pm, "Andrew" <andrewr2k1@.n0r3ply_hotmail.com> wrote:
>
> 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
>|||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
"Andrew" <andrewr2k1@.n0r3ply_hotmail.com> wrote in message
news:e413UcYnHHA.4476@.TK2MSFTNGP02.phx.gbl...
> 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
>

No comments:

Post a Comment