一、创建报表
可以通过Report或者Report Wizard创建报表
右键 Insert-->Table, 可以为插入的Table选择或创建数据源
我们也可以跳过这一步,暂且生成一个空报表,动态地为报表设置数据源,关于这个在后边会提到。
关于报表的创建,可以参考
- Walkthrough: Creating a ReportViewer Report
- RDLC 报表系列(一) 创建一个报表
-
WinForm中创建Rdlc报表, Windows Forms Control in Local Processing Mode(Using a Business Object Data Source)
- 官方教程
- 概述
二、报表数据源
添加DataSet数据源
在DataSet中新建一个TableAdapter,创建第一个DataAdapter时,会提示创建数据库连接。
当然,我们也可以不映射数据库中的字段,直接手动添加列,之后为这些DataSet复制,可以参考这里。
为Rdlc报表生成数据源
配置Rdlc的数据源,当然可以在为Rdlc创建Table时根据Wizard配置好:
右键Table-->Tablix Properties-->General-->Data Set Name
接下来就可以把DataSet中的字段往Table中拖拽或者直接编辑该列的Expression。
添加页眉和页脚,Report-->Add Report Header, Add Report Foo。
如果不能在每页都显示页眉或页脚,请在RDLC源码<KeepWithGroup>After</KeepWithGroup>后加上<KeepWithGroup>After</KeepWithGroup>,如:
<TablixRowHierarchy>
<TablixMembers>
<TablixMember>
<KeepWithGroup>After</KeepWithGroup>
<RepeatOnNewPage>true</RepeatOnNewPage>
</TablixMember>
<TablixMember>
<Group Name="详细信息" />
</TablixMember>
<TablixMember>
<KeepWithGroup>Before</KeepWithGroup>
</TablixMember>
</TablixMembers>
</TablixRowHierarchy>
报表的数据源还可以是某个类的方法,这个方法应该返回一个集合,可以参考这里,如:
/// <summary>
/// The data source.
/// </summary>
public class DataSource
{
/// <summary>
/// The get Meterials.
/// </summary>
/// <returns>
/// </returns>
public static IEnumerable<Meterial> GetMeterials()
{
return null;
}
public static IEnumerable<Meterial> GetMeterials2()
{
return null;
}
}
/// <summary>
/// The Meterial
/// </summary>
public class Meterial
{
/// <summary>
/// Gets or sets Name.
/// </summary>
public string Name { get; set; }
/// <summary>
/// Gets or sets Email.
/// </summary>
public string Email { get; set; }
}
三、在apsx页面中显示报表
新建Aspx页面,拖拽一个ScriptManager(在Toolbox-->Ajax Extensions中)到具有runat="server"的控件之下,如<form id="form1" runat="server">,如
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
</form>
插入ReportView控件
为报表的数据源初始化实例
点击上图的"ReportView Tasks"-->Choose Data Source
在弹出的Wizard中,选择“Object”,输入Data Source Id, 点击OK确认,此时可以选择在”报表数据源“中创建的TableAdapter。当然,我们可以通过代码来创建数据源,代码如下:
ObjectResult<MeterialReturnResult> meterials = DbEntities.BusinessScale();
var rdsMeterials = new ReportDataSource(
"MeterialDataSet", meterials );
localReport.DataSources.Clear();
localReport.DataSources.Add(rdsMeterials );
localReport.Refresh();
我在以上代码中使用EF调用存储过程发挥的结果作为报表的数据源。
四、报表参数
报表参数的值只能通过程序来设定,在报表上无法接收参数值的输入,只能显示。通过右键“Report Data” View的“Parameters”添加参数,如:
设置报表参数的值:
var reportDateParameter = new ReportParameter("ReportDate", reportDate);
reportParameters.Add(reportDateParameter);
多次添加相同参数名的报表参数,前者将会被覆盖。
五、报表变量和常量
ExecutionTime
|
生成报表的时间
|
PageNumber
|
当前的页号
|
ReportFolder
|
包含报表的文件路径
|
ReportName
|
报表的名称
|
ReportServerUrl
|
执行报表Server的路径(这里没有用Server,所以没有,如果用ReportService那就就存在了)
|
TotalPages
|
总行数
|
UserID
|
当前执行报表的人
|
Language
|
执行报表Server的系统语言
|
显示页码:
Globals!PageNumber.ToString() & "/" && Globals!TotalPages.ToString()
显示行号:
=RowNumber("MeterialDataSet")
参考:RDLC 报表系列(三) 参数、常量及常用表达式的使用
六、报表表达式
回车拼接字符串:
=Fields!FirstName.Value & vbCrLf & Fields!LastName.Value
其他表达式请参考:rdlc报表表达式应用(字符串和转换)
可以两个小应用可以参考:
- RDLC报表中给Matrix矩阵控件中的小计subtotal行加上背景色
- RDLC报表中Matrix矩阵控件空值替换成0
七、子报表
如果希望单击报表中某个值后,弹出一个新的报表,即钻取报表或自报表,则
右键报表的某个单元格-->Text Box Property-->制定钻取报表和传递给钻取报表的参数
在钻取报表中添加一个参数已接收主报表传递过来的参数,参数名和主报表传递给钻取报表的参数名相同。
捕获主报表的Drillthrough事件,实例化钻取报表的数据源,如:
private void reportViewer1_Drillthrough(object sender, DrillthroughEventArgs e)
{
LocalReport lp = (LocalReport)e.Report;
string customerid = lp.GetParameters()["customerid"].Values[0].Trim();
lp.DataSources.Clear();
lp.DataSources.Add(new ReportDataSource("NorthwindDataSet_Orders",
new NorthwindDataSetTableAdapters.OrdersTableAdapter().GetDataByCustomerID(customerid)));
}
详细请参考:使用RDLC报表(四)--钻取式报表
八、分组
对于新建的Table,有一个默认的分组,名为Details,但是没有制定分组的字段,我们可以为这个分组设置分组字段,如:
参考:VS中RDLC报表分组的实现
九、在报表中插入图片
将图片复制到工程,右键“Report Data”视图中的Image,选择“Add”,将图片引入报表。之后便可以将图标拖到报表中,我们这里插入图片的方式为Embedded,参考这里。
十、阅读
- 蜡人张
- gotreportviewer
- 大小: 72.9 KB
- 大小: 54.5 KB
- 大小: 36.9 KB
- 大小: 43.7 KB
- 大小: 43.8 KB
- 大小: 23.9 KB
- 大小: 39.3 KB
- 大小: 64.5 KB
- 大小: 29.6 KB
- 大小: 11.9 KB
- 大小: 59.3 KB
- 大小: 41.2 KB
分享到:
相关推荐
ASP.NET RDLC报表实例代码,对学习报表的很有用
asp.net rdlc报表代码实例。有显示多条数据,显示单条数据,子报表等代码实例。做项目需要的可以看看。
asp.net rdlc报表使用教程,doc文档
但是,Microsoft似乎并不容忍在自己的超级工具中竟然没有报表工具,于是Report Viewer Control出现了,我把它的报表称为RDLC报表。 在VS .NET 2005之前,SQL Server Reporting Services中已经提供了一种被称为报表...
本文是一篇介绍在VS .NET报表开发中,RDLC报表开发的随笔,写的不错。好东西要广传,现转载全文,并感谢网友“蜡人张”的随笔,本人收益较多。 (注:这个资源本应该是免费的,但小弟积分少的可怜,又需要下载一些...
Asp.net的ReportViewer的RDLC设计及动态绑定数据源
asp.net-rdlcasp.net-rdlc 报表入门
这是关于ASP.NET中RDLC进行报表操作的3个文档,是Word文件形式,有属性及方法介绍,还有完整实例。
ASP.NET中动态控制RDLC报表,开发.net爱好者的福音。在asp.net程序中,可以选择使用水晶报表,功能确实强大。但是web版的水晶报表好像存在版权的问题。如果所作报表不是复杂的一塌糊涂的话,可以使用微软自带的Rdlc...
c#winform写的打印, 含Rdlc报表,报表里面有一维码和二维码生成。供菜鸟学习。欢迎交流。
visual studio 自带的RDLC报表的使用技巧. 个人建议在做报表的时候尽量用自带的RDLC去代替水晶报表. 稳定性会好很多.
如何动态给reportview控件设置rdlc报表
官方rdlc实例讲述报表的运用,里面有例子供大家参考
VS2022-RDLC VS2022-RDLC VS2022-RDLC VS2022-RDLC VS2022-RDLC VS2022-RDLC VS2022-RDLC VS2022-RDLC VS2022-RDLC
.NET平台下RDLC报表应用例子,对学习报表有帮助
MVC下使用RDLC报表的示例。之前找了大半天。有图形报表,也有记录集报表。
微软ms.net rdlc报表,一行显示多列技术,和datalist显示一样。
这是一个关于使用C#开发的.NET Framework 4框架的RDLC文件报表WinForm项目工程,包含了一个完整的实现例子,可以作为参考学习使用,该项目工程实现的功能如下: ①创建人员信息模型; ②创建人员信息内容; ③创建...
.NET C# RDLC报表的打印源码,很辛苦才找来的,为我能再下载些资料,不得已才收分的,谢谢啊
在用.net开发的程序包含rdlc 报表时,无论是winForm或webForm程序在部署到客户机子时都要求客户机上安装有ReportViewer 报表查看器,给部署带来了麻烦。现在好了,只要将这几个 dll 文件放到 winForm 的 exe 文件的...