一.写作前提
前两篇我们讲到了如何在RDLC中如何插入和使用图片,除了图片以外,在报表中我们往往需要使用一些特定格式或在特定的条件下使用 特定的数据,或对数据做下些处理,并且可能存在一些数据是要我们从ASP.NET程序提供的,所以这篇我们主要讲RDLC报表中如何使用参数 、表达式及常用常量。
由于最近项目比较紧,没有时间写过多复杂的东西,而群里的兄弟又比较想知道页首页尾及合并表头的设计,所以我把一个完事的设计 模板放在ReportTemplate文件夹中,提供给大家参考。
二.本文内容
1. 怎样通过ASP.NET 程序为RDLC报表提供参数
2. 怎样使用RDLC提供的变量及常用常量
3. 常用表达式的使用
4. 总结
5. 代码下载(下载)
三.ASP.NET 程序为RDLC报表提供参数
在我们的报表中,往往需要从ASP.NET程序提供一些参数显示在报表的指定位置,第一篇中我们已经讲过怎样传递一个数据集,但是我 们只需要一个值,总不能把这个值放到DataSet中来传输吧(因为DataSet本其实是由XML结成,在传递过程中需要比data本身更多的资源) ,所以这个时候我们就需要知道如何传递一个参数到RDLC报表。下面我们就来讲一讲。
不知道大家还记不记得我在第一篇中的Default.aspx.cs中写的一个Button事件,如下。
1 protected void ButtonReportGenerate_Click(object sender, EventArgs e)
2 {
3 List<ReportDataSource> reportDataSource = new List<ReportDataSource> ();
4 RportDataSet ds = new RportDataSet();
5 string templatePath = string.Empty;
6 string totalRecords = string.Empty;
7
8 SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings ["LoggingConnectionString"].ConnectionString);
9 SqlCommand command = conn.CreateCommand ();
10 command.CommandType = CommandType.Text;
11 command.CommandText = "SELECT * FROM T_BC_LOGS";
12 SqlDataAdapter da = new SqlDataAdapter(command);
13 da.Fill(ds.T_BC_LOGS);
14 reportDataSource.Add(new ReportDataSource("RportDataSet_T_BC_LOGS", ds.T_BC_LOGS));
15
16 //TemplateFiles
17 templatePath = "ReportTemplate/LogReport.rdlc";
18 List<ReportParameter> parameterList = new List<ReportParameter>();
19 ////Generate Report
20 GetReportMultipleDataSourceFile(reportDataSource, templatePath, parameterList, "pdf");
21 }