rdlc报表的制作

合集下载

RDLC报表---自定义数据集

RDLC报表---自定义数据集
//数据集 DataSet ds = new DataSet();
//查询并填充 try {
connection.Open(); adapter.Fill(ds); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { connection.Close(); command.Dispose(); connection.Dispose(); }
//新建数据源 ReportDataSource rs = new ReportDataSource(); = "EventHistory";//"EventHistory"是rdlc报表Tablib属性下的数据集名称 rs.Value = ds.Tables[0];
//添加数据源 this.reportViewer1.LocalReport.DataSources.Add(rs);
//新建连接 SqlConnection connection = new SqlConnection(connstr);
//查询命令 SqlCommand command = new SqlCommand(textBoxSQL.Text, connection);
//适配器 SqlDataAdapter adapter = new SqlDataAdapter(command);
//指定rdlc报表 this.reportViewer1.LocalReport.ReportEmbeddedResource = "FormReport.EventReport.rdlc";
//清空reportviewer先前的数据源 this.reportViewer1.LocalReport.DataSources.Clear();

RDLC报表

RDLC报表

RDLC报表1.1简介在visual studio 2005之前,微软提供了一个报表服务(Reporting Service),其中也提供了报表自定义语言Report Definition Language, RDL语言),其报表定义为.rdl文件;Microsoft提供了针对这种报表的设计器,并且提供了在并提供了在WinForm和WebForm中使用这种报表的能力.微软定义了RDLC (Report Definition Language Client)也就是报表定义语言的客户端也称本地报表,该报表的后缀为.rdlc.本地报表和服务器报表存在一定的区别。

服务器报表rdl是指那些针对报表服务部署在服务器端的报表。

当报表被许多用户访问、报表以发布在报表服务器上,将其包含在所创建和部署的应用程序中、报表中有复杂的查询或者包含数据量大导致应用程序所在计算机的系统资源超载时,用报表的远程处理比较合适。

本地报表rdlc是指在本地的一些报表,在使用报表不一定要依赖于SQL Server,而是可以自主生成一些数据源然后以报表的方式显现出来。

本地处理模式的功能不及远程处理功能强大,适合中小型好报表和数据集的应用程序。

如果和rdl比较,rdlc可以看成是一个轻量级的报表。

在展现报表的时候我们需要使用到的一个控件叫ReportViewer,这种控件可以展现rdl报表,也可以展现rdlc报表。

从其属性可以看出,ReportView.ServerReport是针对rdl报表的,而ReportViewer.LocalReport是针对rdlc报表的。

1.2RDLC功能RDLC报表提供了以下主要功能:1、含有简单易用尤其是Table控件,非常方便字段在报表上的排列。

2、灵活的可定制性,用XML来实现通用的报表打印,可以用XML完全可以实现一个基于RDLC的报表设计器,这样可以让终端用户参与到报表的设计中,至少可以使他们能够修改报表中一些标题、表头等3、高度可编程性,在你的项目中,甚至不需要有一个报表文件,通过代码就可以实现报表生成、预览和打印等一系列操作;4、支持数据钻取功能;钻取报表是通过设置Navigation(HyperLink)和Parameters 来实现的,而具有子报表的钻取报表实现的功能类似Excel中数据透视表(Pivot Table)的功能,在一个复杂的交叉表中可以进行时间和商品两个维度的向下钻取。

rdlc报表制作详细步骤

rdlc报表制作详细步骤

使用RDLC报表(一)1 建立数据源启动VS2005新建一个窗体项目,命名为TestProj在左边的窗体内选择“添加新数据源”或在菜单上操作“添加新数据源”:选择后出现对话窗体,选择“数据库”,进入“下一步”:本数据源以SqlServer2000所提供的Northwind数据库为例,因此在数据库内选择驱动程序为SqlServer,具体操作视所用数据库而定(如果连接为Oracle,建议用Oracle所提供的ODP for .NET,地址:/technol ogy/global/cn/software/tech/windows/odpnet/index.html)。

选择数据源后,指定数据库文件,并进行测试,如果连接不通,请检查你的软件设置。

进行下一步,至显示出库文件内的表及视图,然后打开表,并选择其中的Employ ees,选择完成。

在数据源窗口中显示出所选择表及表内的字段,以备使用。

同时在资源管理器中,也可以看到新增加的数据文件。

2 报表浏览器在新建的窗体内,放入报表浏览控件:此报表浏览控件集成了报表查看及打印预览的功能,可直接输出至打印机,也可直接输出至Excel文件或PDF文件,对于喜欢看Excel表格的客户来说,这个报表控件非常不错。

关于此报表的来源及台前幕后的各种说法,请自己查询相关的网站。

3 建立报表文件选中报表浏览器控件后,在控件的右上角会出现一个小三角,点击后,出现一个菜单,选择“设计新报表”或在解决方案资源管理器中添加一个新的报表文件:双击“报表项”内的“表”,则设计空白表内生成一个表格,我们可以在表格内添加数据项。

此报表的设计方式类似于MS以前的VB下报表设计环境。

在报表设计器中,我将一份报表分为五个部分,从上至下为:报表标题区、列标题区、数据显示区、合计及页脚。

如果将报表的设计形式显示出页眉及页脚,报表的形式会看得更清楚些:选择页眉及页脚:显示结果:现在开始设计报表:在“页眉”区内放入一个文本框,将内容更改为“测试报表”,居中,字体放大加粗:从数据源窗口中选择合适的列,用鼠标拖到报表内的“详细信息”表格上,数据会自动填入:将设计的报表保存后,返回报表浏览窗口,并为报表浏览器选择我们设计的报表:选中报表文件后,菜单也有所改变:再为此报表文件指定数据源,选择数据源:确定,保存文件并运行测试文件。

RDLC报表实例

RDLC报表实例

RDLC 报表开发一、打开Visual Studio 2005,新建 网站,添加数据集,会自动调出数据集配置窗口TableAdapter如果上面的窗口没有自动调出,可以如下图可以调出上面的TableAdapter 窗口二、新建立数据库连接下面的这一步会将数据库连接保存到config 文件中下面的这一步可以,选择生成SQL的方式让我们先回到SQL Server Query Analyzer打开SQL Server 查询分析器在SQL程序中创建如下图的存储过程然后回到Visual Studio 2005,选择使用现在的存储过程,下一步,在这里,我们只需要选择所需要的存储过程,如刚才建立的EmployeeReport 即可完成TableAdapter向导的配置三、添加报表项创建报表项后,从左边工具栏拖动一个Table 到报表设计器中,选择网站数据集中的字段,把它拖动到表格的列中,通过页眉页脚可以设置复杂的打印样式。

四、新建立一个ASPX页面,拖动一个Report Viewer控件到页面中,在ReportViewer任务窗口中,选择刚才建立的rdlc文件,生成解决方案,然后执行就完成了报表开发。

[ 注意:如果此处报“未能找到在ObjectDataSource ObjectDataSource1 的TypeName 属性中指定的类型”的错误,说明数据源配置不正确,可以选择正确的配置即可。

]五、注意1. 刚才的SQL 脚本CREATE PROC EmployeeReportASSELECT * FROM EmployeeGO实际的报表开发中,一定不要用SELECT * ,只取报表中需要查看的字段。

2. 有时候,可能需要用户选择一些条件,有选择性的查看报表。

而不是全部绑定数据如上图,用户可能只需要查看2008-9-29至2008-9-30时间段之间的数据则作法如下:先建立好如上图的ASPX页面,在View Report 事件中写如下的程序ReportViewer1.LocalReport.ReportPath = AppDomain.CurrentDomain.BaseDirectory + "/Report/Request.rdlc";DateTime dtFrom =Convert.ToDateTime(txtDateFrom.Text);DateTime dtTo =Convert.ToDateTime(txtDateTo.Text);string requester = txtRequester.Text;string dept = txtRequestDept.Text;string material = ddlMaterial.SelectedValue;string iprstatus = ddlStatus.SelectedValue;DataTable reqrpt = ReportDB.RequestReport(dtFrom, dtTo, material, dept,requester, iprstatus);if (reqrpt != null){ReportViewer1.LocalReport.DataSources.Clear();ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("Request_RequestReport", reqrpt)); ReportViewer1.LocalReport.Refresh();}ReportViewer1.LocalReport.Refresh();根据用户所选的参数,把数据值传到SQL语句中即可.下面是RequestReport方法的源码DataTable RequestReport(DateTime dtFrom, DateTime dtTo, string pMaterial, string pDept, string pRequester, string pIPRStatus) {string MySQL = Purchase;string whDate = " RequestDate BETWEEN '{0}' AND '{1}' ";MySQL = MySQL + string.Format(whDate, dtFrom, dtTo);string whMaterial = " AND MaterialCode='{0}' ";if (pMaterial != "ALL"){MySQL = MySQL + string.Format(whMaterial, pMaterial);}string whDept = " AND RequestDepartment='{0}' ";MySQL = MySQL + string.Format(whDept, pDept);string whRequester=" AND Requester='{0}' ";if(pRequester!="ALL")MySQL = MySQL + string.Format(whRequester, pRequester);string whIPRStatus = " AND IPRStatus={0} ";if (pIPRStatus != "ALL"){MySQL = MySQL + string.Format(whIPRStatus, pIPRStatus);}IDataProvider privider = DataProvider.CreateDataProvider();DataSet ds = privider.RetriveDataSet(MySQL);if (ds != null && ds.Tables.Count > 0)return ds.Tables[0];elsereturn null;}const string Purchase="SELECT SerialNO,LedgerAcc,CostCenter,Requester,"+" RequestDate,RequestDepartment,MaterialCode, " +" Brand,Specifications,Unit,Quantity,Usage, "+" ExpectedDeliveryDate,Currency "+" ,Quotation1Supplier,Quotation1UnitPrice,Quotation1Amount, "+" Quotation2Supplier,Quotation2UnitPrice,Quotation2Amount, "+" Quotation3Supplier, Quotation3UnitPrice, Quotation3Amount, "+" ProposedQuotationSupplier, ProposedQuotationUnitPrice, "+" ProposedQuotationAmount,QuotationRemarks ,IPRStatus,QtyTo, UnitPriceTo FROM IPR WHERE ";3. 设计报表时,可以用上述的方法,实际运行时,可以替换成SQL 语句,传到ReportDataSource中即可,只要相应的表结构字段是存在的。

rdlc入门操作

rdlc入门操作

1.新建一张rdlc报表,如下图
2.选择数据源
3.在弹出框中选择要加入的dataset
4.在报表项中选择你所需要的报表项,拖到报表主体中
5.在表头中输入列名,详细信息中帮定你要统计的数据明细(用sum(字段)),表尾中显示要统计的整列数据的总和(用sum(字段)),如果要对某一类进行统计,则选种详细信息列,右键,点击“插入组”,如下图
在组的分组中,设置要分组统计的字段。

如图:绿色的是插入的组统计,红色的是表尾统计
6.新建testReport.aspx 文件,在工具栏中,把报表控件MicrosoftReportViewer拖到该页面中,如下图:
7.在reportViewer 控件中,选择报表,选择上面建的报表testReport.rdlc
8.在testReport.cs文件中绑定数据代码如下:
9.效果图:
二.报表传参数
1.选择报表—>报表参数如下图:
2.弹出报表参数设置的窗口,添加参数BudgetIdPar,设置数据类型为Integer,具体如下图:
3.报表建好后,将报表设置到test.aspx页面中,在.aspx页面中加textbox ID为“txtParm”,确定按钮,如下图
4..cs文件中,确定按钮的事件如下:
5.运行界面如下:
三.子报表。

csdn rdlc报表使用手册

csdn rdlc报表使用手册

csdn rdlc报表使用手册RDLC(Report Definition Language Client)是微软提供的一种报表定义语言,用于创建和部署本地报表。

RDLC报表使用基于XML的RDLC文件格式,可以在客户端应用程序中使用,不需要依赖于服务器端的报表服务。

RDLC报表使用手册一、RDLC报表的基本概念1.报表设计器:RDLC报表的设计工具,可以在Visual Studio中打开和编辑。

2.数据集:报表所需的数据源。

可以是数据表、数据集以及通过查询语句获取的数据。

3.数据源:报表绑定的数据源对象。

4.数据绑定:将报表中的控件与数据源中的字段进行关联。

5.表格:报表中用于显示数据的主要控件,可以设置列、行、组和总计等。

6.图表:报表中用于可视化数据的控件,可以用于展示柱状图、折线图、饼图等。

7.矩阵:报表中用于显示交叉表格的控件,可以实现多维数据的展示。

8.列表:报表中用于显示动态数据的控件,可以根据数据集的行数重复显示。

二、RDLC报表的创建和设计步骤1.打开Visual Studio,并创建一个新的Windows Forms项目。

2.在项目中添加RDLC报表文件,可以右键项目,选择添加->新建项,在模板中选择RDLC文件。

3.在报表设计器中,可以添加数据源和数据集。

选择数据源对象,并设置查询语句或连接字符串。

4.在报表设计器中,通过拖拽控件的方式添加表格、图表、矩阵或列表等控件。

5.设置控件的属性和样式,如字体、颜色、边框等。

6.设置数据绑定,将报表中的控件与数据源中的字段关联起来。

7.设置表格、图表、矩阵或列表等的相关属性,如分组、排序、总计等。

8.预览或发布报表,可以在报表设计器中预览报表效果,也可以在应用程序中调用报表进行展示。

三、RDLC报表的数据绑定和常用控件1.数据绑定:可以通过设置控件的Data Source属性,选择报表的数据集。

然后通过设置控件的Value属性,将控件与数据集中的字段进行绑定。

RDLC Step 1DrillThrough Report

RDLC Step 1DrillThrough Report

RDL(C) Report Design Step by Step 1: DrillThrough Report前一段时间,发了几篇关于RDLC报表的随笔,由于这些随笔中没有关于报表设计方面的内容,于是不少网友和我联系,问了一些关于报表设计方面的问题,最近准备写几篇关于RDLC报表设计的随笔。

这篇随笔主要描述实现钻取报表的步骤。

钻取报表的数据源应该是两个具有主子关系的表,在这篇随笔中以Northwind数据库中的订单和订单明细作为数据源。

1、在Visual Studio 2005中创建一个Windows应用程序RDLCDR。

2、在项目中添加数据源,数据源并不一定用来为报表提供数据(当然Visual Studio 2005提供的操作非常方便),主要是在报表设计时可以方便向报表中进行字段拖曳。

添加数据源意味着在项目中添加了一个数据集Orders.xsd文件,当报表的数据不是来源于关系型数据库(如Flat Files或Web Services等)时,我们可以自己定义一个xsd文件作为报表设计时的数据源,而在程序中重新为报表载入数据。

3、在项目中添加报表rptOrder.rdlc,这个报表非常简单,不具体介绍其设计步骤。

报表文件中将显示“订单”的内容,其结构如下图1所示:图1 “订单”报表的结构4、同上,添加报表rptOrderDetails.rdlc,其结构如下图2所示:图2 “订单明细”报表的结构5、在报表rptOrder.rdlc中,选中表控件的“表详细信息”行的第一列“=Fields!订单ID.Value”单元格,右键“属性”弹出“文本框属性”对话框(如图3所示),在“导航”选项卡的“超链接操作”中,选中“跳至报表”并在下拉列表中选择报表rptOrderDetails,单击下拉列表右边的“参数...”按钮,进行入图4所示的设置。

图3 “文本框属性”对话框图4 “跳至报表”参数设置6、在报表rptOrderDetails中,使用菜单“报表”→“报表参数”进入“报表参数”对话框,并如下图5所示设置参数orderid,这个参数主要用于从rptOrder接收传值。

微软rdlc报表

微软rdlc报表

1.创建报表首先,创建数据源(连接数据库或者直接在工程添加DataSet),在此以DataSet 为例。

向工程添加数据集DataSet,再向数据集添加数据表DataTable,在表中添加字段(点击某一字段,选择属性可以修改字段类型)。

这样数据源就那立好了。

如下图所示:然后,在工程添加rdlc报表,在报表中添加表,在表中设置相应的显示字段如下图所示:最后,Form中添加报表浏览器ReportView,并且在ReportView对象的右上角点击小三角型,设置上面做好的rdlc报表如下图所示:如果数据源为DataSet,就要手动添加数据参考代码段如下:DataRow dr6 = ds1.Tables[0].NewRow();dr6.SetField("Name", "陈娇");dr6.SetField("Address", "广东增城新塘");dr6.SetField("Sex", "女");ds1.Tables[0].Rows.Add(dr6);this.reportViewer1.LocalReport.DataSources.Clear();this.reportViewer1.LocalReport.DataSources.Add(newMicrosoft.Reporting.WinForms.ReportDataSource("DataSet1", ds1.Tables[0]));this.reportViewer1.RefreshReport();2.添加字段(列)注意:在数据源的数据表中添加字段后,要在“视图”—“报表数据”弹出的界面中刷新数据源才能在报表只使用3.报表分组3.1基本分组在报表中右键点击数据单元格(设置好数据字段的单元格)选择“添加组”—“下方相邻”,如下图所示:然后就设置新添加的组,旧的字段就可以手动删掉了另外也可以右键点击行组,进行添加分组,如下图所示:3.2分组统计右键点击某一组的数据字段,操作界面如下图所示:然后在添加的行上右键点击“文本框属性”设置表达式,操作界面如下图所示:最终效果如下图所示:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在 VS .NET2005 之前,SQL Server Reporting Services 中已经提供了一种被称为报表定义语言(Report Definition Language, RDL)的语言;在VS .NET 2005中,Microsoft 提供了针对这种报表的设计器,并提供了在WinForm和WebForm中使用这种报表的能力。

Microsoft 将这种报表的后缀定为 RDLC,RDL 仍然是 Report Definition Language 的缩写,那么C 代表什么呢C代表 Client-side processing,凸显了它的客户端处理能力。

这种报表的易用性和可定制性让我们完全有理由放弃Crystal Report,让我们来看看它的强大功能吧:
1、简单易用的控件,特别是Table控件,非常方便字段在报表上的排列
2、灵活的可定制性,用XML来描述一个报表相关的一切
3、高度可编程性,在你的项目中,甚至不需要有一个报表文件,通过代码就可以实现报表生成、预览和打印等一系列操作
4、支持DrillThrough数据钻取功能
5、导出的Excel文件格式非常完美,任何其它报表在这方面都不能与之比拟,而且并不需要安装Excel
下面就开始制作一张分组统计的简单报表:
1打开 VS ,新建一个 WinForm 程序,添加一个新建项,选择报表
2报表是要数据绑定的,因此下一步添加数据源。

可以通过添加“添加数据源”来通过数据库连接字符串链接到一个表或视图,不过也不必通过数据库来给dataset,取消弹出的“配置数据适配器”界面。

打开 dataset 直接右键添加一个“table”
3从报表设计页的“工具栏”上拖一个“表”到报表上。

此表默认有三行,header、detail、footer,顾名思义:header 即是表头,detail 就是要显示的内容,footer为表尾,可以在这里进行一些统计信息。

并且对表格进行相应的格式设计,加上表格边宽,字体居中等。

把相应的数据字段绑定上去,直接把刚才建的 dataset 的字段拖进去,在序号列加入报表的一个函数“=RowNumber(Nothing)”,RDLC 中有许多函数可以用,右击某个单元格“属性”,在“value”中点“fx”会出现函数对话框。

再加入统计行,打开报表,在 footer 行收入那列中键入“=Sum(Fields!”即求和。

再加入分组统计,点击表格,在左侧上右键“inert group”,插入一个分组,如下设置:
4最后,报表的设计如下图:
5随便建一个 Fomr 窗体,从工具栏上拖入“ReportViewer”控件,点击该控件右上方三角,选择刚刚建立的那张报表。

接着我们手动在后台写上数据绑定的代码,如下:
using System;
using ;
using ;
using ;
using ;
using ;
using ReportView
{
public partial class FrmReportView : Form
{
public FrmReportView()
{
InitializeComponent();
}
private void FrmReportView_Load(object sender, EventArgs e)
{
DataTable dt = GetData();
// DataSetFirst_DataTableFirst 必须与 RDLC 报表中为表格配置的数据源名称相同
ReportDataSource rds = new ReportDataSource("DataSetFirst_DataTableFirst", dt); ();
}
private DataTable GetData()
{
DataTable dt = new DataTable("dataname");
DataColumn("name", typeof(string)));
DataColumn("income", typeof(decimal)));
DataColumn("dept", typeof(string)));
DataRow dr = ();
dr["name"] = "张三";
dr["income"] = ;
dr["dept"] = "人事";
dr = ();
dr["name"] = "李四";
dr["income"] = ;
dr["dept"] = "后勤";
dr = ();
dr["name"] = "XJ";
dr["income"] = ;
dr["dept"] = "技术";
dr = ();
dr["name"] = "CSC";
dr["income"] = ;
dr["dept"] = "技术";
return dt;
}
}
}
6
7现在直接运行能看见如下效果:。

相关文档
最新文档