二.使用RDLC提供的变量及常用常量
在RDLC报表中,有些你想得到的功能是用ASP.NET代码完成不了的,比如说这个报表总共有多少页,当前在第几页等等,这些功能我们就要借助RDLC表达式中自带的一些常量了,下面就让我们来谈谈这此常量。
1. 显示总共页数及当前页
a) 从Visual Studio IDE左边的ToolBox中拖两个TextBox到报表的页首。
b) 右击第一个TextBox,选择Expression…,在Expression窗口的Category中选择Globals,然后在Item中双击选择TotalPages,这个变量就是总共多少页,为了方便我们查看,我们把在上面显示的表达式进行修改如下:
="Total of "+Globals!TotalPages.ToString()
c) 按上面的加入总页的方式,右击第二个TextBox选择Expression…,然后在选择Globals,接着选择PageNumber,这就是当前的页数,同样为了方便查看,修改如下:
=" Total of "+Globals!PageNumber.ToString()
注意:
刚才我们选择总页数和当前页数的时候,是不是发现除了这两个还有好几个常量,现在解释如下:
ExecutionTime
|
生成报表的时间
|
PageNumber
|
当前的页号
|
ReportFolder
|
包含报表的文件路径
|
ReportName
|
报表的名称
|
ReportServerUrl
|
执行报表Server的路径(这里没有用Server,所以没有,如果用ReportService那就就存在了)
|
TotalPages
|
总行数
|
UserID
|
当前执行报表的人
|
Language
|
执行报表Server的系统语言
|
2. 为RDLC报表中数据行增加自动编号
a) 为了完成这个功能,我们完成这个功能,现在我们为报表中已经存在的Talbe在最左边加一个字段叫S/N(这篇中没有讲表从哪里来,请参阅[原创] RDLC 报表系列(一) 创建一个报表)。
b) 还记得我当时给这个表绑定了一个数据集吗?选点右击表,选择Properties,从里面拷出那个数据集的名称。
c) 右击S/N的数据字段,选择Expression,在Expression的Category中选择Common FunctionsàMiscellaneous,然后双击右边Item中的RowNumber,在其参数中输入数据集的名称,如下所示:
=RowNumber("RportDataSet_T_BC_LOGS")
三.常用表达式的使用
1. 连接字符
=Fields!FirstName.Value + Fields!LastName.Value 连接两个字段在一个单元格中,并一行显示
=Fields!FirstName.Value & vbCrLf & Fields!LastName.Value 连接两个字段在一个单元格中显示,但是换行显示
2. If表达式使用
=IIF(Fields!LineTotal.Value > 100, True, False) 如果成立执行True的表达式,否则执行False表达式,我可也可以写其它的表达式代替代码里的东西
3. Count表达式使用
=Count(Fields!DAILYCOUNT.Value,"WeldingReportDataSet_T_WelderDaily") 计算WeldingReportDataSet_T_WelderDaily数据集中DAILYCOUNT有多少行
3. Sum表达式使用
=Sum(Fields!DAILYCOUNT.Value,"WeldingReportDataSet_T_WelderDaily") 计算WeldingReportDataSet_T_WelderDaily数据集中DAILYCOUNT的总和
4. Format表达式使用
=CDate(Fields!TOPAINTDATE.Value).ToString("dd MMM yyyy") 对date的格式进行应用
六.总结
通过上面的内容,我们学习到如下内容:
1. 从ASP.NET传递参数到RDLC报表中
2. 掌握如何使用RDLC提供的常量;
3. 掌握如何使用常用的表达式
一. ASP.NET 程序为RDLC报表提供参数
在我们的报表中,往往需要从ASP.NET程序提供一些参数显示在报表的指定位置,第一篇中我们已经讲过怎样传递一个数据集,但是我们只需要一个值,总 不能把这个值放到DataSet中来传输吧(因为DataSet本其实是由XML结成,在传递过程中需要比data本身更多的资源),所以这个时候我们就 需要知道如何传递一个参数到RDLC报表。下面我们就来讲一讲。
不知道大家还记不记得我在第一篇中的Default.aspx.cs中写的一个Button事件,如下。
protected void ButtonReportGenerate_Click(object sender, EventArgs e)
{
List<ReportDataSource> reportDataSource = new List<ReportDataSource>();
RportDataSet ds = new RportDataSet();
string templatePath = string.Empty;
string totalRecords = string.Empty;
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LoggingConnectionString"].ConnectionString);
SqlCommand command = conn.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandText = "SELECT * FROM T_BC_LOGS";
SqlDataAdapter da = new SqlDataAdapter(command);
da.Fill(ds.T_BC_LOGS);
reportDataSource.Add(new ReportDataSource("RportDataSet_T_BC_LOGS", ds.T_BC_LOGS));
//TemplateFiles
templatePath = "ReportTemplate/LogReport.rdlc";
List<ReportParameter> parameterList = new List<ReportParameter>();
////Generate Report
GetReportMultipleDataSourceFile(reportDataSource, templatePath, parameterList, "pdf");
}
其中我定义了一个泛型变量,如下:
List<ReportParameter> parameterList = new List<ReportParameter>();
但是我并没有给这个变量赋任何值,我要告诉大家的就是这里变量就是为我们传递参数提供的。好,下面我们就来讲一下怎么传递这个参数。
1. 首先我们打开ReportTemplate文件夹中的RDLC报表模板,点击报表的编辑区,然后打开Report菜单下的Report Parameters…,在Report Parameters窗口中,我们点击Add 按钮,接着我们输入这个参数的名称与类型(这个名称你要记住,因为下面的编程中要用到),如果这个参数提供的时候不一定每次都有值,那么我们则要选中 All null value的复选框,如下图所示,如果你有多个参数则以此方法添加即可。
2. 我们从Visual Studio IDE左边的ToolBox中拖一个TextBox到这个报表模板的页首(在我的报表中,复杂的表头大部分都是通过TextBox来实现的,可以设计 TextBox的边框及字体等属性来设计,所以后面的内容中我不会再提如何设计复杂的报表页首),右击这个TextBox,选择Expression…, 在Expression窗口中,我们选择Category中的Parameters,然后双击最右边你刚刚加的那个参数,点击确定即可。至此,对报表的设 计完成了。
3. 修改Default.aspx页面中的程序如下所示:
protected void ButtonReportGenerate_Click(object sender, EventArgs e)
{
List<ReportDataSource> reportDataSource = new List<ReportDataSource>();
RportDataSet ds = new RportDataSet();
string templatePath = string.Empty;
string totalRecords = string.Empty;
SqlConnection conn =
new SqlConnection(ConfigurationManager.ConnectionStrings["LoggingConnectionString"].ConnectionString);
SqlCommand command = conn.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandText = "SELECT * FROM T_BC_LOGS";
SqlDataAdapter da = new SqlDataAdapter(command);
da.Fill(ds.T_BC_LOGS);
reportDataSource.Add(new ReportDataSource("RportDataSet_T_BC_LOGS", ds.T_BC_LOGS));
//TemplateFiles
templatePath = "ReportTemplate/LogReport.rdlc";
List<ReportParameter> parameterList = new List<ReportParameter>();
//为参数Parameter1传递This is a parameter
parameterList.Add(new ReportParameter("Parameter1", "This is a parameter"));
////Generate Report
GetReportMultipleDataSourceFile(reportDataSource, templatePath, parameterList, "pdf");
}
分享到:
相关推荐
在本教程中,我们将深入探讨如何在WPF程序中集成和使用RDLC报表,以及如何通过代码传递参数。 首先,我们需要了解RDLC报表的基本结构。RDLC报表由多个元素组成,如数据区域(例如表格、矩阵、图表)、文本框、图像...
在rdlc报表表达式中,CDec函数可以将常量转换为Decimal类型,例如: =CDec(500) 转换函数可以用于将字段的默认数据类型转换为计算所需的数据类型或用于组合文本。 五、决策函数 IIF函数可以根据表达式的计算结果...
根据给定的信息,本文将详细解释如何在C#中向RDLC报表传递参数,并通过具体的代码示例来阐述这一过程。 ### C# 向 RDLC 报表传入参数 在开发应用程序时,经常会遇到需要将数据以报表形式展现的需求。RDLC(Report ...
本文档主要介绍了RDLC报表中表达式的使用技巧,特别是关于字符串处理和转换方面的内容。 #### 二、字符串函数的应用 ##### 2.1 字符串连接 在RDLC报表中,经常需要将多个字段或变量连接成一个完整的字符串。可以...
6. **呈现报表**:在控制器方法中,可以使用`LocalReport`类从代码中运行RDLC报表。首先,创建一个`LocalReport`实例,设置报表路径,加载数据源,然后添加报表数据。最后,使用`Render`方法生成报表的HTML输出,并...
在本示例中,"RDLC报表绑定到数据集的简单使用.zip" 文件旨在演示如何将RDLC报表与数据集相结合,以显示虚拟人物的消费报表。下面将详细介绍这个过程中的关键知识点。 1. **RDLC报表**: Reporting Design Language...
**Rdlc报表设计器——ReportViewer报表设计的得力助手** 在IT行业中,数据可视化是至关重要的,而报表则是数据展现的重要方式。`Rdlc`( Reporting Services Report Definition Language Client-Side)报表设计器...
在探讨 RDLC 报表中的表达式应用、字符串处理和转换的知识点之前,首先要明确 RDLC 是报表定义语言客户端(Report Definition Language Client-side)的缩写,用于在 Microsoft Visual Studio 中创建报表,通常用于 ...
通过准备数据源、制作RDLC报表、使用表达式和参数、页面绑定和显示报表结果等步骤,我们可以创建一个功能强大的报表系统,满足企业的报表需求。 知识点总结: * RDLC报表是一种常用的报表制作技术。 * ...
1. **RDLC使用手册v2.pdf**:这份手册可能包含了RDLC报表的最新版本介绍,详细阐述了如何创建、编辑和运行RDLC报表。它可能涵盖了报表设计的基础知识,数据源配置,表达式使用,以及如何在Windows Forms和ASP.NET...
rdlc报表是微软开发的一种用于创建和展示数据报表的组件,它全称为“Report Definition Language Client-Side Rendering...通过理解rdlc报表的工作原理和使用方法,开发者能够创建出功能强大且用户友好的数据展示界面。
visual studio 自带的RDLC报表的使用技巧. 个人建议在做报表的时候尽量用自带的RDLC去代替水晶报表. 稳定性会好很多.
常用表达式,函数的使用 金额大写函数 数值为空时自动赋值为0 报表-属性-代码中输入如下脚本 Public Function ConvertValue(ByVal value As Object) As String If IsNothing(value) or Len(Trim(value))=0 Then ...
尽管Crystal Report因其功能强大而在很长一段时间内是.NET开发者常用的报表工具,但随着RDLC报表的出现和发展,越来越多的开发者倾向于使用RDLC报表。主要原因在于RDLC报表提供了更好的集成性、更高的定制性和更为...
最后,别忘了调用`reportViewer.LocalReport.Refresh()`方法来更新报表,确保所有的数据源和参数设置都已生效。 在实际开发中,我们可能还需要处理如错误处理、用户交互(如导出报表、打印)等其他功能。RDLC报表...
1. **RDLC使用手册v2.doc**:这可能是对RDLC报表的详细指南,涵盖了从创建报表到发布的全过程,包括设计环境的介绍、报表元素的使用方法、数据源的配置、表达式的编写等内容,是学习RDLC报表的重要参考资料。...
- 在RDLC报表中,可以使用表达式进行复杂的计算和逻辑判断。例如,计算字段、聚合函数(SUM、AVG、COUNT等)、条件语句(IF...THEN...ELSE...)等。 - 表达式通常用于计算值、过滤数据、设置样式等,增强了报表的...
设计界面类似于Visual Basic下的报表设计环境,通常将报表划分为报表标题区、列标题区、数据显示区、合计区及页脚区。 #### 三、报表设计与预览 在报表设计过程中,可在页眉区域内放置一个文本框,用于展示报表...
本安装程序专为C#开发者设计,旨在帮助他们轻松集成RDLC报表到自己的应用程序中,并提供语言包汉化,以便中国用户能够更加流畅地使用。 RDLC(Report Definition Language Client Reports)是由微软开发的一种报表...
在"RDLC报表教程.doc"文档中,你可能会找到关于如何创建、设计、数据绑定、参数设置、表达式使用、报表渲染等方面的详细步骤和示例,这对于学习和掌握RDLC报表的使用非常有帮助。通过深入学习这个教程,你可以提高在...