RDLC报表使用手册

RDLC报表使用手册
RDLC报表使用手册

RDLC使用总结

1、为什么要使用RDLC报表(简介)

VS .NET开发中,用什么进行报表设计?可能的回答是Crystal Report,当然,必须承认Crystal Report的功能还是非常强大的,被Business Object收购以后,商业的成分也在逐渐增加,也形成了一定规模的用户群。

Visual Studio .NET进入2005版本以后,Crystal Report与IDE的结合更“紧密”了,至少我们看不到那个讨厌的注册窗口了。但是,Microsoft似乎并不容忍在自己的超级工具中竟然没有报表工具,于是Report Viewer Control出现了,我把它的报表称为RDLC报表。

在VS .NET 2005之前,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;

6)数据源处理极其方便,开发人员可以自己接管数据库连接、取数,然后将数据结果赋值给RDLC的数据集即可。

7)展示和数据分离,程序员更是可以编写一个RDLC设计器交有用户使用,这样用户就可以自行设计RDLC报表格式,程序员只负责定制数据接口即可。

RDLC MSDN:https://www.360docs.net/doc/732606824.html,/zh-cn/library/ms251671(VS.80).aspx

2、RDLC简单Demo

本文所有RDLC例子都是基于VS2005 C#,所有ReportViewer的处理模式都是Local模式。本报表Demo显示上文中提到的RDLC手册各节内容,下述为Demo的详细steps。

1)新建项目,选择Windows应用程序项目类型,输入工程名称RDLCDev;

2)修改Form1窗体名称为FrmRdlcUserGuide,在工具箱—>数据Tab选项卡中选择ReportViewer控件,将其拖入到FrmRdlcUserGuide,默认命名为reportViewer1,调整ReportViewer控件的大小和布局;

3)在解决方案资源管理器中选择RDLCDev工程,鼠标右击RDLCDev工程,添加新建项,在添加新项模板中选择“报表”,取名为rdlcuserguide.rdlc,单击添加按钮,然后在解决

方案资源管理器中RDLCDev工程下会增加一个rdlcuderguide.rdlc文件,并且会自动打开RDLC 设计器;

4)在RDLC设计器中添加11个TextBox控件,1个作为标题,其余10个作为RDLC 使用手册具体内容,对每个TextBox控件进行TextAlign、Color、BorderStyle、Font和TextDecoration等相关属性设置,设计完毕之后,大致如下图所示。

5)在FrmRdlcUserGuide窗体Load事件中添加下述代码

private void Form1_Load(object sender, EventArgs e)

{

this.reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;

this.reportViewer1.LocalReport.ReportPath = "rdlcuserguide.rdlc";

this.reportViewer1.RefreshReport();

}

6)编译、运行RDLCDev工程,运行结果大致如下图所示。

3、RDLC常用控件介绍

RDLC设计工具箱上总共有9种控件:文本框(TextBox)、折线(Line)、表(Table)、矩阵(Matrix)、矩形(Rectangle)、列表(List)、子报表(SubReport)、图表控件(Chart)、图像控件(Image)。下图ctlsDemo.rdlc设计器所示为所有控件的设计演示。

1)由于表格控件、矩阵控件、列表控件和图表控件必须填充数据集,因此把所有控件布局完毕之后,创建一个数据集。解决方案资源管理器中,选中RDLCDev工程,右击添加新建项,在新建项类型模板里选择“数据集”,取名“ctlsDemo.xsd”,单击“添加”。

ctlsDemo.xsd添加完毕之后,在解决方案资源管理器中会增加一个ctlsDemo.xsd文件,并前VS IDE会自动打开ctlsDemo.xsd设计页面。在设计页面中右击,添加Datatable,将其命名为vSales,该表描述的是产品的销售额信息,为vSales表添加列,列信息如下:ProdCat System.String

SubCat System.String

OrderY ear System.Int32

OrderQtr System.String

Sales System.Double

2)文本框控件、折线控件、矩形控件使用相对简单,这里不细说;

3)Image控件,现在RDLC设计器模式下,选择“报表”菜单,“嵌入图像”,在“嵌入图像”对话框中,载入一个本地图像文件即可。然后设置Image控件的Source属性为Embedded,设置V alue属性为刚才处理的嵌入图像即可。当然还有别的方式可以显示图像,大家可以Google一下,关键字为RDLC、嵌入图像;

4)图表控件,使用图表控件的一个关键是要设置好图表属性页面中的数据TAB页相关内容。主要有值、类别组和序列组定义,大家可以参考Demo;

5)表格控件、矩阵控件和子报表控件,在后续内容中会详细介绍;

4.1 表格控件使用介绍

1)Table控件是RDLC报表显示数据的一个核心控件,关于Table控件,在微软提供的RDLC规范里有详细的介绍,其大致内容可以用下述的一张类UML图来表示;

2)新建报表文件,命名为ctlTableDemo.rdlc;

3)在ctlTableDemo.rdlc设计器中,拖入Table控件,默认情况下是3行3列,其中第1行为表头行(我们理解为列标题行),第二行为详细信息行(我们理解为报表内容展示区域),第三行为表尾行(我们理解为汇总区域)。可以整行选中,然后右击鼠标添加行或者删除行,也可以整列选中,然后右击鼠标添加或者删除列。上文中提到的数据集合有5个字段,因此需要5列来显示,为此需要增加两列。

4)在数据源窗口中(如果没有显示的话,选择【数据】菜单下的【显示数据源】即可)选择上文中创建的ctlsDemo.xsd数据集,将ProdCat、SubCat、OrderY ear 、OrderQtr和Sales 分别拖入到Table控件的详细信息行的不同列中去。

5)设置标题行文字显示都居中,Sales的内容显示右对齐,ProdCat、SubCat、OrderY ear、OrderQtr和Sales文本框的字体颜色全部设置成Blue,Sales文本框由于显示的内容为销售额,因此需设置数字显示格式,小数位数。鼠标右击Sales文本框,选择【属性】,在文本框属性窗口中,选择格式Tab页,在格式代码处,选择数字1,234.00格式即可,选择完毕之后该文本框的数字就以逗号千分位作为分割符,保留2位小数显示,效果如下图所示。

6)插入一个组实现分组统计功能。选中整行,鼠标右击,选择【插入组】,弹出分组和排序属性对话框,设置分组名称、分组方式、是否显示组头或者组尾等属性即可,本文分组设置如下:

·分组名称:table1_Group1

·分组表达式:=Fields!ProdCat.Value;=Fields!SubCat.V alue;=Fields!OrderY ear.V alue,实现产品年度销售额汇总统计功能。

·不显示组头、显示组尾(至于组头、组尾是个什么样的东西,大家只要动手试一下就一目了然了)

·在textbox15中输入汉字“合计”,在textbox16文本框中输入合计表达式

=Sum(CDbl(Fields!Sales.Value)),设置完之后效果如下图所示。

7)新建窗体FrmCtlTableDemo,然后在该窗体上添加ReportViewer控件,在窗体FrmCtlTableDemo代码窗口里输入以下代码:

private void FrmCtlTableDemo_Load(object sender, EventArgs e)

{

this.reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;

this.reportViewer1.LocalReport.ReportPath = @"rdlc\ctlTableDemo.rdlc";

//

reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("ctlsDemo_vSales", LoadData()));

//

this.reportViewer1.RefreshReport();

}

private DataTable LoadData()

{

DataSet dataSet = new DataSet();

dataSet.ReadXml(@"data\ctlsDemo.xml");

return dataSet.Tables[0];

}

8)运行效果如下图所示

4.2 矩阵控件使用介绍

1)矩阵控件主要用于显示CrossTable之类的报表,因此其列数可以是Static的,也可以是Dynamic并且Can grow的,关于矩阵控件,在RDLC协议规范里也有介绍,其大致内容可以用下图表示。

2)新建报表文件,命名为ctlMatrixDemo.rdlc;

3)在ctlMatrixDemo.rdlc设计器中,拖入Matrix控件,默认情况下是2行2列,左上角单元格为空白区域(通常用来显示报表摘要信息如产品/年度等),右上单元格显示为“列”,单击此处可以增加列分组,左下单元格显示为“行”,单击此处可以添加行分组,右下单元格显示为“数据”,单击此处可以添加静态行、静态列。

4)在矩阵左上角单元格空白区域拖入矩形控件,然后在该矩形控件中拖入一个折线控件和两个文本框控件,折线当做矩形的对角线,两个文本框内容为产品和年度分布在折线两侧。

5)增加两个行分组,分别为matrix1_RowGroup1和matrix1_RowGroup2,matrix1_RowGroup1的表达式为=Fields!ProdCat.V alue,matrix1_RowGroup2的表达式为=Fields!SubCat.Value。

6)增加两个列分组,分别为matrix1_ColumnGroup1何matrix1_ColumnGroup2,matrix1_ColumnGroup1的表达式为=Fields!OrderY ear.Value,matrix1_ColumnGroup2的表达式为=Fields!OrderQtr.V alue。

7)在“数据”单元格中编辑表达式=Sum(CDbl(Fields!Sales.Value))

8)设计完之后,效果如下图所示;

9)新建窗体FrmCtlMatrixDemo,然后在该窗体上添加ReportViewer控件,在窗体FrmCtlMatrixDemo代码窗口里输入以下代码:

private void FrmCtlMatrixDemo_Load(object sender, EventArgs e)

{

this.reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;

this.reportViewer1.LocalReport.ReportPath = @"rdlc\ctlMatrixDemo.rdlc";

//

reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("ctlsDemo_vSales", LoadData()));

//

this.reportViewer1.RefreshReport();

}

private DataTable LoadData()

{

DataSet dataSet = new DataSet();

dataSet.ReadXml(@"data\ctlsDemo.xml");

return dataSet.Tables[0];

}

10)运行效果如下图所示

4.3 子报表控件使用介绍

子报表作为主报表的一个补充,在显示明细内容的时候比较管用,本文从如何填充子报表数据,如何传递参数两方面介绍子报表如何使用。

1)新建RDLC报表,命名为subReportDemo.rdlc;

2)在subReportDemo.rdlc设计器中,拖入一个文本框和一个子报表控件;

3)设置文本框的文本显示为“子报表控件演示”;

4)设置子报表控件属性,主要设置其“子报表”的值,这里设为上文讲到的ctlTableDemo报表,效果如下图所示;

5)新建一个窗体FrmSubReportDemo,添加如下代码

private void FrmCtlSubReportDemo_Load(object sender, EventArgs e)

{

reportViewer1.LocalReport.SubreportProcessing += new

SubreportProcessingEventHandler(LocalReport_SubreportProcessing);

//

this.reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;

this.reportViewer1.LocalReport.ReportPath = @"rdlc\subReportDemo.rdlc";

//

reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("ctlsDemo_vSales", LoadData()));

//

this.reportViewer1.RefreshReport();

}

void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e)

{

e.DataSources.Add(new ReportDataSource("ctlsDemo_vSales", LoadData()));

}

private DataTable LoadData()

{

DataSet dataSet = new DataSet();

dataSet.ReadXml(@"data\ctlsDemo.xml");

return dataSet.Tables[0];

}

这里,区别于其它显示RDLC报表程序的代码就是对子报表的处理,本文在FrmCtlSubReportDemo_Load事件里添加了一个对子报表事件的处理:reportViewer1.LocalReport.SubreportProcessing += new

SubreportProcessingEventHandler(LocalReport_SubreportProcessing);

6)关于子报表参数如何传递,在RDLC报表参数介绍一文中介绍;

7)运行效果如下图所示

4、RDLC参数介绍

5.1 报表参数处理

1)修改上文提高的ctlTableDemo.rdlc报表为例,该报表用于显示产品每季度的销售额。修改该报表,给该报表添加一个参数prod_cat,用于过滤只显示产品系统为参数prod_cat值对应的产品季度销售额。

2)在ctlTableDemo.rdlc设计器中,选择【报表】菜单,【报表参数】菜单,在报表参数界面中,添加一个报表参数取名为“prod_cat_sub”,类型为String,提示信息为“输入产品系列名称”,允许空白值;

3)选中table1控件,鼠标右击,选择【属性】,选中【筛选器】Tab页,在筛选器列表中添加:=Fields!ProdCat.V alue = =Parameters! prod_cat_sub.V alue;

4)在FrmCtlTableDemo窗体中添加下述代码,用红色表示的2行代码:

private void FrmCtlTableDemo_Load(object sender, EventArgs e)

{

this.reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;

this.reportViewer1.LocalReport.ReportPath = @"rdlc\ctlTableDemo.rdlc";

//

reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("ctlsDemo_vSales", LoadData()));

//

ReportParameter p = new ReportParameter("prod_cat_sub", "Component");

reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p });

//

this.reportViewer1.RefreshReport();

}

5)运行结果如下图所示,显示Component产品系列的产品季度销售额;

5.2 子报表参数处理

1)在程序里面,本人还未找到直接向子报表传递参数的方法,但是可以用其它的方法变通实现,在主报表的subreport控件属性里面设置参数,通过主报表传递过去。

2)以上文提到的FrmSubReportDemo为例,其主报表为subReportDemo.rdlc,先设置主报表的参数。在subReportDemo.rdlc报表设计器中选择【报表】,【报表参数】,在报表参数对话框中,增加一个参数。参数名称为prod_cat,参数类型为String,参数提示为“输入产品系列名称”。

3)选中子报表subreport1,鼠标右击,选择【属性】,选择【参数】tab页,添加一个参数。参数名称为“prod_cat_sub”,参数值=Parameters!prod_cat.V alue。为此,主报表的参数名与子报表的参数名称要不一致。

4)打开subreport1对应的子报表设计器,本文为ctlTableDemo.rdlc,该ctlTableDemo.rdlc 的参数在上文中已经设置,这里不再赘述。

5)运行效果如下图所示。(源码网整理:https://www.360docs.net/doc/732606824.html,)

5、RDLC钻取功能实现

本Demo在主报表会显示一个部门列表(部门ID、部门名称等),然后通过钻取功能可实现特定部门的员工信息展示,下述为具体操作步骤。

1)准备好两个数据源,本文为2个xml文件(departments.xml和Employees.xml),这两个文件放在项目的Data文件夹下,特别注意的是这两个文件的【复制到输出目录】属性要选择“始终复制”,负责工程编译的时候不会将这两个文件生成到bin目录下。

2)新建报表,命名为“drillthrough.rdlc”;新建一个数据集,命名为“departments”,在该数据集中添加一个Datatable,表结构如下:

DepartmentID Int32

Name String

GroupName String

ModifiedDate DateTime

rowguid String

3)在drillthrough.rdlc设计器中,拖入一个文本框和一个Table控件。文本框显示内容为“Drill Through Demo”,在Table控件中拖入DepartmentID和Name两列。

4)添加Name列的导航、钻取功能。右击Name文本框,选择【属性】,选择【导航】Tab页,在“超级链接”处选择“跳至报表”(该报表为显示钻取实现的目标报表,假设为drillthroughDetail.rdlc,且已经存在,因此在实践时,可以再本操作之前,先创建一个drillthroughDetail.rdlc报表),设置“跳至报表”为drillthroughDetail,点击【参数】按钮,会弹出参数设置对话框。在对话框中,添加一个参数,名称为DepartmentID,值为=Fields!DepartmentID.V alue;

5)设计drillthroughDetail.rdlc报表,先新建一个该报表对应的数据集,名称为employees,添加一个DataTable,名称为employee,employee表部分内容如下:

1

Terri

1

1

Duffy

Lee

false

245797967

VP Engineering

1998-03-03T00:00:00.0000000-08:00

1961-09-01T00:00:00.0000000-07:00

adventure-works\Terri

Terri@https://www.360docs.net/doc/732606824.html,

1

S

Tad Orman

586-883-8338

true

F

300

2

63.4615

1

20

false

true

2003-01-15T19:26:13.9000000-08:00

1b76e019-0d60-4d48-b405-c9144fb9b3ab

从表的内容中,我们可以大致判断出其结构是什么样的啦。

6)拖入一个文本框控件和表格控件到drillthroughDetail.rdlc报表设计器中,并从employees数据集中拖入相应字段到表格控件中,设置完毕之后,效果如下图所示。

7)设置drillthroughDetail.rdlc报表的参数:参数名称为DepartmentID,类型为Integer;

8)设置drillthroughDetail.rdlc报表表格控件的筛选器,表达式为=CInt(Fields!DepartmentID.V alue),运算符为=,值为=Parameters!DepartmentID.V alue。

9)新建一个窗体FrmDrillThrough,添加一个ReportViewer控件,在代码编辑窗口,添加下述代码:

private void FrmDrillThrough_Load(object sender, EventArgs e)

{

reportViewer1.ProcessingMode = ProcessingMode.Local;

reportViewer1.LocalReport.ReportPath = @"Rdlc/drillthrough.rdlc";

reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("departments_department", LoadData(@"Data\departments.xml")));

reportViewer1.RefreshReport();

}

//读取XML数据

private DataTable LoadData(string xmlFilePath)

{

DataSet dataSet = new DataSet();

dataSet.ReadXml(xmlFilePath);

return dataSet.Tables[0];

}

private void reportViewer1_Drillthrough(object sender, DrillthroughEventArgs e)

{

LocalReport localReport = (LocalReport)e.Report;

localReport.DataSources.Add(new ReportDataSource("employees_employee",

LoadData(@"Data\Employees.xml")));

}

10)运行效果如下图所示。

鼠标移到Name一列,会变成手的形状,如单击Engineering,就会钻取取来Engineering 部门的员工信息,如下图所示。

6、RDLC自定义工具条

1)自定义工具条可以理解为对ReportViewer的ToolBar功能的一种变通实现,如添加代码实现ToolBar刷新按钮的功能、ToolBar页导航功能。

如刷新功能代码实现为:

this.rptViewer.RefreshReport();

如ToolBar停止按钮的代码实现为:

this.rptViewer.CancelRendering(0);

。。。

2)在做项目的时候,如果用ReportViewer控件做报表展示工具的话,打印和导出的代码实现,应该要掌握。

导出功能:ReportViewer导出都是通过Render来实现的,如下代码为导出Excel

Microsoft.Reporting.WinForms.Warning[] Warnings;

string[] strStreamIds;

string strMimeType;

string strEncoding;

string strFileNameExtension;

//this.rptViewer.LocalReport.Render(

byte[] bytes = this.rptViewer.LocalReport.Render("Excel", null, out strMimeType, out strEncoding, out strFileNameExtension, out strStreamIds, out Warnings);

string strFilePath = @"D:\exportdemo.xls";

using (System.IO.FileStream fs = new FileStream(strFilePath, FileMode.Create))

{

fs.Write(bytes, 0, bytes.Length);

}

打印例子下载https://www.360docs.net/doc/732606824.html,/waxdoll/RDLCPrint.rar,打印也是一个间接行为,有点类似ReportViewer控件需要通过点击打印按钮来打印一样,并没有提供直接的打印函数,为此本人封装了打印功能(在附件的whhrdlc.dll文件中)并开放了打印函数,用户可以调用下面语句打印报表:

//打印出错时,错误信息描述

String errMsg = String.Emptys;

//调用打印函数(弹出打印设置对话框)返回false打印失败;

bool bln = Printer.PrintDialog(this.reportViewer1.LocalReport, out errMsg);

//调用打印函数(直接打印)返回false打印失败;

bool bln = Printer.Print (this.reportViewer1.LocalReport, out errMsg);

7、设计器实现

8.1 RDLC XML分析

1)RDLC文件其实就是一个XML文件,有很多结点和元素,在解决方案资源管理器中选中某个rdlc文件,鼠标右击,选择【打开方式】,在打开方式对话框中选择XML编辑器,单击确定按钮即可。

在xml文件中我们可以看到DataSources、PageHeader、DataSets、ReportItems等结点,网上有篇Vs2005报表设计器XML分析总结的博文

https://www.360docs.net/doc/732606824.html,/sutter/archive/2008/01/14/2044253.aspx,写的比较详细,大家可以参考。

2)这里比较关键的就是DataSet的处理,Rdlc报表无论是表格显示还是矩阵显示或者列表显示数据,都需要关联DataSet。在前面提到的所有篇幅中,都是先创建一个数据集,并为该数据集添加一个DataTable,然后将表字段拖放到表格控件、矩阵控件或者列表控件,用以显示数据。这么做,从效率上来看不是最高的,因为手工产生一个目标DataTable比较耗时。为此,我们可以先直接编辑rdlc的xml文件,编辑器dataset的内容即可,如下所示:

ProdCat

System.String

SubCat

System.String

OrderYear

System.Int32

OrderQtr

System.String

Sales

System.Double

DummyDataSource

true

ctlsDemo

vSales

修改其Field定义,修改Dataset的Name即可,最后别忘了保存即可。

8.2 RDLC设计器实现

1)在8.1中已经提到了RDLC报表文件,其实就是一个xml文件,那么只要我们用程序动态产生一个xml文件,只要这个xml文件的节点定义、元素定义、属性定义符合RDLC协议规范即可。

2)关于RDLC设计器,已经有人可以很好地实现它了,而且是OpenSource的,大家可以去看看。

因为不知道如何在博文中上传附件,把相关资料已经上传到CSDN,大家可以搜索“RDLC 使用手册”下载。

使用RDLC报表(一)

1 建立数据源

启动VS2005新建一个窗体项目,命名为TestProj

在左边的窗体内选择“添加新数据源”或在菜单上操作“添加新数据源”:

选择后出现对话窗体,选择“数据库”,进入“下一步”:

本数据源以SqlServer2000所提供的Northwind数据库为例,因此在数据库内选择驱动程序为SqlServer,具体操作视所用数据库而定(如果连接为Oracle,建议用Oracle所提供的ODP for .NET,地址:

https://www.360docs.net/doc/732606824.html,/technology/global/cn/software/tech/windows/odpnet/index.html)。

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

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

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

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

2 报表浏览器

在新建的窗体内,放入报表浏览控件:

此报表浏览控件集成了报表查看及打印预览的功能,可直接输出至打印机,也可直接输出至Excel文件或PDF文件,对于喜欢看Excel表格的客户来说,这个报表控件非常不错。关于此报表的来源及台前幕后的各种说法,请自己查询相关的网站。

3 建立报表文件

选中报表浏览器控件后,在控件的右上角会出现一个小三角,点击后,出现一个菜单,选择“设计新报表”或在解决方案资源管理器中添加一个新的报表文件:

双击“报表项”内的“表”,则设计空白表内生成一个表格,我们可以在表格内添加数据项。此报表的设计方式类似于MS以前的VB下报表设计环境。在报表设计器中,我将一份报表分为五个部分,从上至下为:报表标题区、列标题区、数据显示区、合计及页脚。如果将报表的设计形式显示出页眉及页脚,报表的形式会看得更清楚些:

选择页眉及页脚:

显示结果:

现在开始设计报表:

在“页眉”区内放入一个文本框,将内容更改为“测试报表”,居中,字体放大加粗:

从数据源窗口中选择合适的列,用鼠标拖到报表内的“详细信息”表格上,数据会自动填入:将设计的报表保存后,返回报表浏览窗口,并为报表浏览器选择我们设计的报表:

选中报表文件后,菜单也有所改变:

再为此报表文件指定数据源,选择数据源:

确定,保存文件并运行测试文件。

4 预览

报表生成后预览如下:

是不是很简单?我们也可以对这个简单的报表进行美化,当然,我加上美化的一些功能后,可能效果更差,但此处只是为了演示用法。

? 为数据加表格。

在报表设计器中,选择需要加表格框的区域

然后在工具栏中选择边框工具

加什么样的框线根据需要,此处我选择“所有框线”。

看上去比原来的灰线能稍黑一些,在预览时就能看出来了。

? 加打印时间显示

加入一个显示打印时间的文本框,在上面按右键,选属性:

在“文件框属性”内,选择“值”后面的表达式生成:

在表达式中选择时间:

不要忘记表达式的前面一定要有一个“=”,如果没有,手工加上一个。为了更符合我们的习惯,前面可以加个说明,如打印时间等,表达式的写法就要稍做改变:还是以“=”开头,后面加上“打印时间:”,再以“&”连接生成的Now函数即可得到我们想要的样子。

? 为行加序号

为了演示,我将序号列加在了表格了最后列

加入一个新的列:

在显示序号的列中输入相关的值:=RowNumber(Nothing)

在此表达式的后面是=RowNumber(Nothing),不是null,不要搞错。

三项功能已经完成,预览:

使用RDLC报表(二)

1.開發前要先安裝MicroSoft ReportViewer 9.0版(原VS2005的ReportViewer版本為8.0),8.0版本不支持本地打印Download

2.Web.Config 須加入以下設定

"Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms,

Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

台账制作步骤

小学、幼儿园校园安全“防护网”安全管理工作台账制作步骤 一、制作八大类台帐盒,共八个台帐盒,按台帐类型制作并贴上台帐类型名称 二、八大类台帐逐类制作 1、法规文件台帐:把规定的法律、法规以及各类安全工作文件复印或打印出来,装在〈法规文件台帐〉盒中。 参考文件名称: 2、组织领导台帐:学校成立“防护网”试点工作领导小组文件,学校安全工作领导小组名单、工作职责,以及上级有关文件。 3、管理制度台帐:按学校的实际管理制度,整理在〈管理制度台帐〉内容中。<学校安全管理制度、应急预案目录> 4、校园封闭式管理防护网台帐: (1)制作校园安全封闭式管理工作机制,校园保安职责与职权, (2)制作并按要求填写相应登记表: 《学校教职员工及住校人员信息及车辆信息登记表》,《来访人员及车辆登记表》 (3)制作学校人员校牌或出入证标识,机动车通行证及临时车辆出入证标识。 5、校园矛盾纠纷、隐患排查化解防护网台账:: (1) 制作涉校矛盾纠纷、隐患排查化解工作机制,市校园安全检查工作机制 (2) 制作并按规定登记填写《学校安全重点部位日巡查隐患登记表》、《学校安全工作月报表》、《校内矛盾纠纷排查化解登记表》、《校园及周边精神病肇事肇祸人员信息及管控登记表》。 6、法制安全意识教育防护网台账: (1) 制作校园法制安全意识教育工作机制 (2) 学校制定以班级为单位每周开展法制安全宣传教育教学计划、教案,打印后装入本台帐 (3) 制作并按规定登记填写《守护“太阳花”人员情况及工作登记表》 (4) 校园法制安全教育及应急演练情况记载(文字、图片、影像资料)等资料。 7、校园三防防护网台账: (1) 打印或复印自治区教育厅、公安厅关于做好我区学校安全保卫“三防”建设的指导意见装入本台帐内容 (2) 制作并填写登记<学校“人防、物防、技防”配备明细表> 8、校园安全周边治安防护网台账: (1) 制作校园安全周边治安“防护网”工作机制,校园警察工作职责与职权,装入本类台帐 (2) 制作并登记填写《学校治安管控负责人与责任民警、学校公安法制副校长和辅导员信息登记表》、《校园及周边精神病肇事肇祸人员信息及管控登记表》、《守护“太阳花”人员信息登记表》、《校园安全“三见”巡防记录表》、《校园民警接处警登记表》、《校园民警工作日志》。 三、台账管理 1、上述1—3台账为长期使用,4—8台账为“防护网”建设规定建档材料,做好有关材料归档,随时备查。 2、学校要高度重视建立安全管理台账工作,指定专人负责,学校有关部门和人员要及时提供相关资料。 3、台账资料要求全面完整、详实准确、图文并茂,按上述条目逐项分类整理归档。各学校可在此基础上,结合自身实际,增加新的内容 4、通过安全资料的收集,归纳分析学校安全工作中存在的问题和薄弱环节,以促进学校不断改进安全工作,不断提高学校安全工作水平。

rdlc报表的制作

在 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”

利用Reportviewer生成RDLC报表

利用ReportViewer生成RDLC报表 报表是应用程序,特别是数据库系统中的重要功能。在Visual Studio 2010中,自带的ReportViewer控件,可以满足常用报表功能的实现,而且使用方便,以下就将介绍利用VS2010中的ReportViewer控件创建RDLC报表,并在winform程序中调用的实例,使用C#语法。 第一步:创建一个Windows应用程序 在Visual Studio 2010中,选择“文件”菜单,新建-“项目”,从已安装模板中选择Visual C#,从中间的项目类型中,选择“Windows窗体应用程序”;在名称栏中,为项目指定名称;在位置栏中,指定想要保存的目录。完成之后,项目中会有一个Form1,以下从对它的窗体设计器开始讲解。 像下面这样修改Form1的属性,当然也可以保留默认属性: Form1.Text = "MS Reporting Services 101 with Smart Client" Form1.Size = 750, 300 第二步:为窗体(Form)添加报表查看器(Report Viewer) 报表查看器,我们可以把它理解为显示和预览报表的容器。它不仅可预览输出报表,还可帮助将报表信息生成各种格式(PDF或Excel等等),当然也包括打印功能。 请按如下步骤在Form1上放置好报表查看器控件: 依次找到工具箱(ToolBox)――报表--报表查看器(ReportViewer),并把它拖到Form1上。这会创建一个名为reportViewer1的新实例。 通过设置reportViewer1.Dock = Fill,报表查看器将会填充窗体的整个区域,以显示报表。 在完成第一步与第二步之后,窗体看起来应该如图1所示: 图1 第三步:为项目添加数据集(DataSet) 数据集是伴随报表查看器而来的,它保存并提供从数据源而来的原始数据,我们便可对这些原始数据进行处理或在C#程序中输出。

RDLC报表总结

RDLC报表 一、RDLC介绍 在VS2005之前,SQL Server Reporting Services中已经提供了一种被称为报表定义语言(Report Definition Language, RDL)的语言;在VS2005中,Microsoft提供了针对这种报表的设计器,并提供了在WinForm和WebForm中使用这种报表的能力。RDL是Report Definition Language的缩写,C代表Client-side processing,凸显了它的客户端处理能力。 从SQL Server2005开始,微软提供了一个报表服务,即Reporting Service,利用该服务部署在服务器端的报表扩展名为rdl;而通过自主生成一些数据源,在本地展现出来的报表扩展名为rdlc,这种方式称之为Local Report。 二、如何开发 下面是LocalReport的开发步骤,对于ServerReport还没有进行研究。 1.新建一个Web工程,新建一个aspx页面。 2.将ReportViewer控件添加到新建的aspx页面中。 (视图—工具箱—数据—ReportViewer) VS2005的数据控件中有名为ReportViewer的控件,用于展现报表。该控件即可以展现rdl 报表也可以展现rdlc报表。 3.新建报表文件 选中web工程—右键添加—新建项—选中报表(如下图)

4.创建自己的报表布局 (以柱状图为例) 工具箱—图表—拖放到报表文件主体中 选中图表—右键—图表类型—柱形图—简单柱形图 可以直接修改属性调整布局,也可以利用工具栏中的布局按钮布局(包括水平居中、垂直居中、对齐网格等) 5.创建数据集(选中web工程—右键添加—新建项—选中数据集) 在新建的数据集面板右键—添加—TableAdapter 配好数据库连接之后,下一步,有三种选择方式:使用sql语句、新建存储过程、使用现有存储过程。根据需求选择一种配好自己的数据源。

报表的使用步骤reportview

008-09-05 报表的使用步骤r eportview 利用MS Reporting Services与C#生成报表 来源:谢启东的专栏作者:谢启东时间:2008-05-26点击:665次 C#也能用在报表中,少见吧,一起来看看! 关于编写报表,职场中的人相信都会有所感慨,一份整洁、优美的报表会为你在上司面前增色不少,甚至加薪:) ——大家都喜欢加薪,对吧?在本文中,将向大家介绍怎样利用MS Reporting Services 2005来创建一份报表,并用一个C#小程序来生成它。 本文假定读者已对Visual Studio 2005 IDE有了初步的了解,并能用C#编写代码,懂不懂MS Reporting Services都对理解本文没有关系,当然了,之前写过类似的报表,将有助于你更快地上手。好了,卷起袖子,准备开始吧! 请看图1,这份报表有多复杂?猜猜它需要多少时间完成?就复杂而言,它只是一份简单的、从NorthWind->Products (SQL Server 2000)中提取出来的报表;就时间而言,相信不会花你一整个小时吧。 图1 下面,我们开始创建报表,首先要编写一个生成报表的C#小程序。 第一步:创建一个Windows应用程序 选择文件菜单,新建-工程,从工程类型中选择C#,从右方对话框中选择Windows应用程序;在名称栏中,最好用一个表明程序用途的名字;在位置栏中,写明你想要保存的目录。完成之后,工程中会有一个Form1,我们就从对它的窗体设计器开始讲解。

像下面这样修改Form1的属性,当然也可以依个人喜好修改其他的属性: Form1.Text = "MS Reporting Services 101 with Smart Client" Form1.Size = 750, 300 第二步:为窗体(Form)添加报表查看器(Report Viewer) 什么是报表查看器,就像看DVD碟时需要一部DVD播放机一样,我们需要一个报表查看器来预览报表。 对初写报表的人来说,报表查看器可以说是赋予了报表生命,它不仅可预览输出,还可帮助将报表信息生成各种格式(PDF或Excel等等),打印出来更不在话下。 [span] 请按如下步骤在Form1上放置好报表查看器控件: 依次找到工具箱(ToolBox)-数据(Data)-报表查看器(ReportViewer),并把它拖到Form1上。这会创建一个名为reportV iewer1新的实例。 通过设置reportV iewer1.Dock = Fill,报表查看器将会填充窗体的整个区域,以显示报表。在完成第一步与第二步之后,工程看起来应该如图2所示: 图2 第三步:为工程添加数据集(DataSet) 数据集是伴随报表查看器而来的,它保存并提供从数据源而来的原始数据,我们便可对这些原始数据进行处理或在C#程序中输出。 请依照如下步骤添加数据集: 从解决方案资源浏览器中选择添加-新项目-数据集,将其名称DataSet1修改dsProduct,并单击添加按钮完成。 添加一个数据表到新创建的数据集中。数据表实质上是用来加载报表数据的,在设计报表时,将会用到DataSet/DataTable中的相关信息。

制作UFO报表之流程

制作一个UFO 报表的流程 在以下步骤中,第一、二、四、七步是必需的,因为要完成一般的报表处理,一定要有启动系统建立报表、设计格式、数据处理、退出系统这些基本过程。实际应用时,具体的操作步骤应视情况而定。 第一步 启动UFO 报表,建立报表 进入企业应用平台后,选择“财务会计”中的“UFO 报表”后可以启动UFO 报表。 启动UFO 报表后,首先要创建一个报表。 点取【文件】菜单中的【新建】命令,将自动创建一个空的报表文件,文件名显示在标题栏中,为“report1”。这时可以在这张报表上开始设计报表格式,在保存文件时用自己的文件名给这张报表命名。 第二步 设计报表的格式 报表的的格式在格式状态下设计,格式对整个报表都有效。可能包括以下操作:  设置表尺寸:即设定报表的行数和列数。  定义行高和列宽。  画表格线。  设置单元属性:把固定内容的单元如“项目”、“行次”、“期初数”、“期末数”等定 为 表样单元;把需要输入数字的单元定为数值单元;把需要输入字符的单元定义为字符单元; 设置单元的字型、字体、字号、颜色、图案、折行显示等。  定义组合单元:即把几个相邻单元合并成一个使用。  设置可变区:即确定可变区在表页上的位置和大小。(根据实际情况而定)  确定关键字在表页上的位置,如单位名称、年、月、日等。  设计好报表格式之后,可以输入表样单元的内容,如“项目”、“行次”、“期初数”、 “期末数”等。 如果需要一个标准的财务报表如资产负债表等,可以利用UFO 报表提供的财务报 表模板自动生成标准财务报表。UFO 报表还提供了11 种套用格式,可以选择与报表要求相近的套用格式,再进行一些必要的更改即可。 第三步 定义各类公式 UFO 报表有三类公式:单元公式(计算公式)、审核公式、舍位平衡公式,公式定义在格式状态下进行。  单元公式:定义了报表数据之间的运算关系,在报表数值单元中键入“=”就可直接 定义计算公式,所以称之为单元公式。

RDLC报表详细讲解与分析报告

RDLC报表随笔…… (,感谢网友”蜡人”) (一) VS .NET开发中,用什么做报表? 可能的回答是Crystal Report,自.NET“紧密”集成Crystal Report后,这可能是开发人员比较单一的选择。但是,这种集成似乎并不非常紧密,网络上充斥着关于使用Crystal Report的抱怨,太复杂也许是其最为令人诟病的地方,自定义性比较差也不能为程序员们所容忍。 当然,必须承认Crystal Report的功能还是非常强大的,被Business Ob ject收购以后,商业职能的成分也在逐渐增加,也形成了一定规模的用户群。 Visual Studio .NET进入2005版本以后,Crystal Report与IDE的结合更“紧密”了,至少我们看不到那个讨厌的注册窗口了。但是,Microsoft似乎并不容忍在自己的超级工具中竟然没有报表工具,于是Report Viewer Control出现了,我把它的报表称为RDLC报表。 在VS .NET 2005之前,SQL Server Reporting Services中已经提供了一种被称为报表定义语言(Report Definition Language, RDL)的语言;在VS .NET 2005中,Microsoft提供了针对这种报表的设计器,并提供了在WinForm和WebForm中使用这种报表的能力。Microsoft将这种报表的后缀定为RDLC,RDL仍然是Report Definition Lan guage的缩写,那么C代表什么呢?C代表Client-side processing,凸显了它的客户端处理能力。 这种报表的易用性和可定制性让我们完全有理由放弃Crystal Report,让我们来看看它的强大功能吧: 1、简单易用的控件,特别是Table控件,非常方便字段在报表上的排列; 2、灵活的可定制性,用XML来描述一个报表相关的一切,不用说了吧? 3、高度可编程性,在你的项目中,甚至不需要有一个报表文件,通过代码就可以实现报表

各类生产报表的制作及填写规范范文

各类生产报表的制作及填写规范范文 1、生产日常报表 1.1要求: 及时、准确、真实 1.2目的: 反应各生产单位的当日的实际产能及生产中存在的问题 1.3具体报表的填写内容及步骤: 1.3.1每小时将投入与包装情况、生产不良情况公布在生产线状况板中 1.3.2每日对当日生产情况、入库情况作出详细机头状态报表 1.3.3回收工时是以当日每种机型的完成数乘以完成数标准S/T与当日每种机型的包装数乘以包装数标准S/T之和 1.3.4投入总工时是以当日正常投入时间(7.2H)乘以当日出勤的人数 1.3.5状态报表中常用的恒等式: 累计投入=今日投入+昨日累计投入=昨日累计投入+今日状态机 累计完成数=待包装数+累计包装数 累计入库=今日入库+昨日累计入库 累计包装数=今日包装数+昨日累计包装 今日完成数=今日累计完成数-昨日累计完成数=待包装数+累计包装数 =今日包装数+今日待包装数-昨日待包装数 待入库=累计包装-累计入库 待投=批量-累计投入 待入库=批量-累计入库 计划差异=当日计划-当日入库(由于客观原因不能入库的,计划差异=当日计划数-当日包装) 投入工时=当日出勤数人数*出勤时间 回收工时=装配线完成数*S/T(装配线标准S/T)+包装线包装数*S/T(包装线标准S/T) 生产效率=回收工时/投入总工时 生产能率=回收工时/(投入总工时-无作业工时) 计划达成率=当日入库(包装)数/当日计划数 2、首件确认表 2.1要求: 及时、准确、真实 2.2目的: 通过对首件的装配和检验,从作业员状况\生产设备仪器状况、生产工具状况、

生产工艺、生产现场及物料状况等几方面确认生产状况是否正常,以保证每日生产持续稳定地进行。 2.3职责: 首件检验进行的条件: A. 每日(每班)生产的初件 B. 每批初件 C. 重大工艺改进 D. 材料变更(包括重点物料的批次性变更) E. 软件长升级、更改及新软件的试用 F. 换线(换机型、换颜色) G. 设计更改 H. 其它 2.4工作流程: PE 或生产技术员进生产工艺及生产工艺流程,并对首件的不良品进行原因分析,将分析结果填写在检验及分析部门样中的不良原因分析及处理栏中 生产线线长填写《首件检验记录》中的“申请部门”一栏相关内容。并从作业员状况,生产设备仪器状况、生产工具状况、生产现场及物料状况进行确认 跟线巡检员填写《首件检验记录》中检验及分析部门栏中相关内容。跟进装配并确认检测结果。首件的数量不少于2PCS 生产制造课、品管课、生产技术课三方会签(工程师、技术员、线长、巡检),并从各课室的角度对检测结果给出建议 品管课填写检验结果 三方认可 判定为不合格或有条件认可 正式生产 合格 或有 条件 认可 生产线停线,由生产部召集各相关部门进行分析、解决,有了改 善措施或是问题解决之后方可重 不合格

十五步完整的标书制作过程及步骤

标书制作对于各位投标人来说是很痛苦的一个流程,因为步骤繁琐复杂,各项要求又容易产生遗漏,是最麻烦的一个环节。因此,小编为大家讲述制作标书时的具体步骤,按着这个步骤来努力提高自身的中标率。 一、投标报名&招标文件购买 招标文件购买:详细阅读招标文件规定的报名方式、报名所需提供的资料及报名费用,并准备报名所需的资料及报名费用,注意报名截止日期。 报名方式分为:现场报名或传真报名(详见各招标文件具体要求)。 现场报名:需携带报名所需的资质文件及报名费用到指定地点进行报名。报完名后,向招标代理机构索取招标文件和发票或收据。 传真报名:需将招标文件要求的资质文件、报名函及报名费用汇款凭证传真至招标文件指定的传真号码,传真后打电话确认招标代理机构是否收到并索取招标文件。 报名常用资质文件包括但不限于: 法人代表授权委托书、投标单位三证、报名费用缴纳凭证或现金、报名函 报名时间:如果时间允许,应在报名截止最后一天报名,前期报名材料需准备好。 二、报名费&保证金缴纳 报名费用缴纳方式:现金缴纳或银行转账。 现金缴纳:需要委托代理人携带招标文件规定的报名费用到招标文件要求的指定地点进行现场缴纳并索取发票或收据。 银行转账:标明招标编号及用途,将汇款凭证传真至招标代理机构,并打电话确认。 投标保证金缴纳方式:银行转账或电汇、现金缴纳、银行汇票等形式。(具体操作需严格按照招标文件要求执行) 保证金不能及时到账而错过时间废标。 汇款完成后内应打电话咨询招标机构是否保证金已到账。 保证金汇款回单必须扫描交给制作标书人员,并按招标文件要求密封。 三、阅读分析标书 技术人员和商务人员分工,认真阅读招标文件2-3遍,对招标文件个别条款不明确的,应及时与招标机构沟通,标示出重点部分及必须提供的材料,最好建立个备忘表(有些材料必须得提供,否则会导致废标)。 思考以下问题: 1.招标人是哪个单位? 2.哪些是控标点? 3.报价有哪些要求? 4.哪些材料需要及时处理? 5.判断是哪种品牌的标的? 6.是否需要寻求合作伙伴? 7.我们的竞争对手有哪些? 8.是否需要厂家授权? 9.哪些要求我司达不到? 10.装订密封、份数要求 11.业绩要求(合同)、财务报表? ………… 四、制作标书 一般标书的结构分为:(1)商务部分(2)技术部分(3)报价部分(但招标文件特殊要求格式除外)商务部分:

图表制作步骤

成本费用分析图制作步骤:(准备好数据表) (1)任意选择一个空白单元格,选择“插入→图表→自定义类型→平滑直线图” (2)在“图表源数据”步骤,选择“系列”选项卡,添加系列“预算成本”、“实际成本”与“辅助列”。(设置完后,不要设置“图表选项”,直接点击【完成】按扭) “预算成本”系列:在“名称”输入框中输入“=成本费用分析!$C$3”,在“值”框中输入“=成分费用分析!$C$4:$C$15”,即分别输入预算成本列中的标题与数据;在“分类轴标志”框中输入“=成本费用分析!$B$4:$B$15”,即部门列内容。 “实际成本”系列:在“名称”输入框中输入“=成本费用分析!$D$3”,在“值”框中输入“=成分费用分析!$D$4:$D$15”,即分别输入实际成本列中的标题与数据;在“分类轴标志”框中输入“=成本费用分析!$B$4:$B$15”。 “辅助列”系列:在“名称”输入框中输入“=成本费用分析!$F$3”,在“值”框中输入“=成分费用分析!$F$4:$F$15”,即分别输入辅助列中的标题与数据;在“分类轴标志”框中输入“=成本费用分析!$B$4:$B$15”。 (3)设置系列“辅助列”的格式。选择“辅助列”直线图,单击鼠标右键,选择“数据系列格式”快捷命令,设置如下:在图案选项卡“线形”与“数据”标记均设为“无”;坐标轴系列绘制在次坐标轴;数据标志选择“类别名称”。 (4)设置系列“辅助列”次分类轴标志。单击图表区,单击鼠标右键,选择“源数据”,在系列“辅助列”次分类轴标志框输入““=成本费用分析!$E$4:$E$15”,即“成分差异”列内容。 (5)设置主、次数值轴的坐标轴。分别选择主、次数值轴,右键单击选择“坐标轴格式”,设置,最小值固定为0,最大值固定为60000。设置完后,选择次数值轴将其删除(选中按“Delete”键即可)。 (6)添加高低连线。选择“预算成本”或“实际成本“直线图,右键单击选择“数据系列格式→选项→高低点连线”,右键点击连线可以进行连线格式设置,比如将线条设置

pb报表制作powerbuilder报表制作教程pb报表编制教程步骤

pb报表制作powerbuilder报表制作教程pb报表编制教程步骤 在通常的管理信息系统开发过程中,总是有没完没了的报表需要制作,调试报表花费的时间也是最多而且乏味,还常常不能满足客户的要求。如果能够让用户自己调整报表的格式和内容,然后将它保存下来,程序下次启动 时若能自动调用保存了的报表格式那就方便多了。 实现原理 PowerBuilder中有一种以PSR为后缀的特殊的保存报表的文件格式(本文简称PSR 文件),数据窗口可以直接读取PSR文件生成报表,而程序通过生成PSR文件,就可以实现动态报表格式的保存。 首先,通过设置数据窗口对象(dataobject)中的文本、列等的Resizeable和moveable属性为1来实现对象位置的拖动控制,通过数据窗口的Modify函数实现对象值的更改(包括增加和删除)。 其次要保存报表格式。在一个应用中,数据窗口对象的名称总是惟一的,将每一个数据窗口对象转化成PSR文件存于数据库表中。在窗口打开时,程序先校验报表格式是否存在。如果存在,将报表格式读出来放在一个临时文件当中,然后设置数据窗口(datawindow)的数据对象(dataobject)为这个报表文件,并提取数据; 如果不存在,直接提取数据即可。实现过程 1. 建立一个数据库表用以保存报表格式文件,各个字段定义如下: 2. 建立一个窗口w_temp。定义实例变量如下: string is_dwtype,is_dwobject //保存报表中对象的类型及名称 3. 在窗口的Open事件中加入如下代码, 校验报表格式是否存在,如果存在,读取定义好的报表格式到数据窗口。 blob emp_pic long ll_handle string ls_dwobject,ls_reportfile,ls_path ls_dwobject = dw_print.dataobject //判断是否存在该数据窗口的报表格式 select count(*) into:ll_count from dyn_report where dwobject =:ls_dwobject; if ll_count>0 then //读取报表格式文件到大文本变量 selectblob memo into:emp_pic from dyn_report where dwobject =:ls_dwobject; //创建PSR临时文件并保存到硬盘 ls_reportfile =‘\temp7089.psr’ ll_handle = FileOpen(is_reportfile,StreamMode!,write!,LockWrite!,Replace!) FileWrite(ll_handle,emp_pic) FileClose(ll_handle) dw_print.dataobject = ls_reportfile dw_print.settransobject(sqlca)

RDLC报表使用手册

RDLC使用总结 1、为什么要使用RDLC报表(简介) VS .NET开发中,用什么进行报表设计?可能的回答是Crystal Report,当然,必须承认Crystal Report的功能还是非常强大的,被Business Object收购以后,商业的成分也在逐渐增加,也形成了一定规模的用户群。 Visual Studio .NET进入2005版本以后,Crystal Report与IDE的结合更“紧密”了,至少我们看不到那个讨厌的注册窗口了。但是,Microsoft似乎并不容忍在自己的超级工具中竟然没有报表工具,于是Report Viewer Control出现了,我把它的报表称为RDLC报表。 在VS .NET 2005之前,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; 6)数据源处理极其方便,开发人员可以自己接管数据库连接、取数,然后将数据结果赋值给RDLC的数据集即可。 7)展示和数据分离,程序员更是可以编写一个RDLC设计器交有用户使用,这样用户就可以自行设计RDLC报表格式,程序员只负责定制数据接口即可。 RDLC MSDN:https://www.360docs.net/doc/732606824.html,/zh-cn/library/ms251671(VS.80).aspx 2、RDLC简单Demo 本文所有RDLC例子都是基于VS2005 C#,所有ReportViewer的处理模式都是Local模式。本报表Demo显示上文中提到的RDLC手册各节内容,下述为Demo的详细steps。 1)新建项目,选择Windows应用程序项目类型,输入工程名称RDLCDev; 2)修改Form1窗体名称为FrmRdlcUserGuide,在工具箱—>数据Tab选项卡中选择ReportViewer控件,将其拖入到FrmRdlcUserGuide,默认命名为reportViewer1,调整ReportViewer控件的大小和布局; 3)在解决方案资源管理器中选择RDLCDev工程,鼠标右击RDLCDev工程,添加新建项,在添加新项模板中选择“报表”,取名为rdlcuserguide.rdlc,单击添加按钮,然后在解决

RDLC报表格式设置

RDLC报表格式设置 设置数字格式 下表列出了常用的 .NET 数字格式设置字符串。 格式字符串名称 C 或c 货币 D 或d 小数 E 或e 科学记数法 F 或f 固定点 G 或g 常规 N 或n 数量 P 或p 百分比 R 或r 往返 X 或x 十六进制 您可以将许多格式字符串修改为包含精度说明符,该说明符用于定义小数点后的位数。例如,格式设置字符串D0 将数字格式设置为小数点后没有数字。您还可以使用自定义的格式设置字符串,例如#,###。 设置日期格式 下表列出了常用的 .NET Framework 日期格式设置字符串。 格式字符串名称 d 短日期[2008.08.08] D 长日期[2008年08月08日] t 短时间 T 长时间

f 完整日期/时间(短时间) F 完整日期/时间(长时间) g 常规日期/时间(短时间)[2008.08.08 8:8] G 常规日期/时间(长时间) M 或m 月日 R 或r RFC1123 模式 Y 或y 年月 您还可以使用自定义的格式设置字符串,例如dd/MM/yy。有关 .NET Framework 格式设置字符串的详细信息,请参阅Formatting Types。 例: 说明:如果参考进价>=100000,则保留1位小数,否则保留2位小数. =IIF(Fields!参考进价.Value>=100000,"F1" , "F2") Public Sub Main() ' Display string representations of numbers for en-us culture Dim ci As New CultureInfo("en-us") ' Output floating point values Dim floating As Double = 10761.937554 Console.WriteLine("C: {0}", _ floating.ToString("C", ci)) ' Displays "C: $10,761.94" Console.WriteLine("E: {0}", _ floating.ToString("E03", ci)) ' Displays "E: 1.076E+004" Console.WriteLine("F: {0}", _

制表格的步骤初学者表格的制作方法

制表格的步骤初学者表 格的制作方法 导读:就爱阅读网友为您分享以下“表格的制作方法”资讯,希望对您有所帮助,感谢您对https://www.360docs.net/doc/732606824.html,的支持! 也许你已经在Excel中完成过上百张财务报表,也许你已利用Excel函数实现过上千次的复杂运算,也许你认为Excel 也不过如此,甚至了无新意。但我们平日里无数次重复的得心应手的使用方法只不过是Excel全部技巧的百分之一。本专题从Excel中的一些鲜为人知的技巧入手,领略一下关于Excel的别样风情。 一、让不同类型数据用不同颜色显示 在工资表中,如果想让大于等于2000元的工资总额以“红色”显示,大于等于1500元的工资总额以“蓝色”显示,低于1000元的工资总额以“棕色”显示,其它以“黑色”显示,我们可以这样设置。 1.打开“工资表”工作簿,选中“工资总额”所在列,执行“格式→条件格式”命令,打开“条件格式”对话框。单击第二个方

框右侧的下拉按钮,选中“大于或等于”选项,在后面的方框中输入数值“2000”。单击“格式”按钮,打开“单元格格式”对话框,将“字体”的“颜色”设置为“红色”。 2.按“添加”按钮,并仿照上面的操作设置好其它条件(大于等于1500,字体设置为“蓝色”;小于1000,字体设置为“棕色”)。 3.设置完成后,按下“确定”按钮。 看看工资表吧,工资总额的数据是不是按你的要求以不同颜色显示出来了。 二、建立分类下拉列表填充项 17页 1 我们常常要将企业的名称输入到表格中,为了保持名称的一致性,利用“数据有效性”功能建了一个分类下拉列表填充项。 1.在Sheet2中,将企业名称按类别(如“工业企业”、“商业企业”、“个体企业”等)分别输入不同列中,建立一个企业名称数据库。 2.选中A列(“工业企业”名称所在列),在“名称”栏内,输入“工业企业”字符后,按“回车”键进行确认。 仿照上面的操作,将B、C……列分别命名为“商业企业”、“个

RDLC报表格式设置

RDLC报表格式设置

Public Sub Main() Display string representations of numbers for en-us culture Dim ci As New Culturelnfo( "en-us") 'Output floating point values Dim floating Console.WriteLine( floating.ToStr ing( Console.WriteLine( floating.ToString( Console.WriteLine( As Double = 10761.937554 "C: {0}" ,— "C", ci)) "E: {0}" , _ "E03", ci)) "F: {0}" , _ Displays "C: $10,761.94" Displays "E: 1.076E+004"

floating.ToString( "F04", ci)) ' Displays "F: 10761.9376" Console.WriteLine( "G: {0}" J 一 floating.ToString( "G", ci)) ' Displays "G 10761.937554" Console.WriteLine( "N: {0}" J 一 floating.ToString( "N03", ci)) ' Displays "N: 10,761.938" Console.WriteLine( "P: {0}" J 一 (floating/10000).ToString( "P02", ci)) ' Displays "P: 107.62 %" Console.WriteLine( "R: {0}" J 一 floating.ToString( "R", ci)) ' Displays "R 10761.937554" Console.WriteLine() 'Output integral values Dim integral As Integer = 8395 Console.WriteLine( "C: {0}" J 一 integral.ToString( "C", ci)) 'Displays "C: $8,395.00" Console.WriteLine( "D: {0}" J 一 integral.ToString( "D6")) 'Displays D: 008395"" Console.WriteLine( "E: {0}" J 一 integral.ToString( "E03", ci)) ' Displays "E: 8.395E+003" Console.WriteLine( "F: {0}" J 一 integral.ToString( "F01", ci)) 'Displays "F: 8395.0" Console.WriteLine( "G: {0}" J 一 integral.ToString( "G", ci)) 'Displays "G: 8395" Console.WriteLine( "N: {0}" J 一 integral.ToString( "N01", ci)) 'Displays "N: 8,395.0" Console.WriteLine( "P: {0}" J 一 (integral/10000).ToString( "P02", ci)) ' Displays "P: 83.95 %" Console.WriteLine( "X: 0x{0}" J 一

表格的基本制作方法

表格的基本制作方法 当今时代,电脑已经是我们日常工作、学习和生活中不可或缺的伙伴,许多人都会使用电脑制作表格,但制作一个令人赏心悦目、精美的标准表格并非人人都会。本节将向同学们简要介绍制作表格的一些基本方法和技巧。 本节以制作《××市信教人数情况统计表》为例进行讲解。 表格示例: 一、正式制作表格之前的工作 1、宏观分析、设计表格 (1)列与行。分析《××市信教人数情况统计表》后,要初步形成这样一个概念:本表初表头部分外,共11列,行数可以根据实际市县区的数量来定,可以暂定为20行,如实际使用表格时行不够时再插入即可--先确定所要制作表格的列数是非常关键的,行数多少无太大关系,表格完成后要插入行是比较容易的。 (2)用纸。从表的内容看,应该使用横向A4纸较为合适些。 (3)表头有三条斜线,字体不在同一水平线上。这是制作中较难的地方。 2、确定正确的页面设置 经宏观分析、设计后,心中有了表格的基本轮廓,这时候不要急着动手制作。重要的一步是:先设立正确的页面,这是许多人往往容易忽视的。如果页面设置不合适,制作出来的表格可能需要重新调整,

很不美观。 正式制作本表前,找开菜单"文件",选"页面设置",在"纸张"中选A4,在"页边距"中选"横向",同时设定好上下左右边距(上2.5,下2,左2.5,右2.5)。在"文档网络"中选"无网络"。 3、检查文本的段落格式 打开菜单"格式",选"段落",在"缩进和间距"中选"单倍行距"。 二、制作流程 1、插入基本表格 打开菜单"表格",选"插入""表格",在出现的"插入表格"窗口的"表格尺寸"中,"列数"定为11,"行数"定为20,"确定"。 2、手工调整各列的宽度 光标放在左侧第一列的右侧线上,变为双箭头,按左键向左拉这条线至合适位置。用同样办法使左侧第二列的宽度符合要求。用同样的办法使用备注栏为适当宽度。 选中中间第3-10列,在"表格和边框"菜单上选"平均分布各列"。 3、调整行高 选定表格。打开菜单"表格",选"表格属性",在出现的表格属性窗口选"行",选"指定高度"定为0.8厘米。 4、表格中的文字垂直对齐 选定表格。打开菜单"表格",选"表格属性",选"单元格",选"居中"。 5、表格中的文字水平居中

ReportViewer教程

ReportViewer教程(1)-新建工程,添加Form和报表浏览器打开Visual Studio后,选择"文件"—>"新建项目",打开新建项目对话框: 打开新建项目对话框后,在“项目类型”中选“Visual Basic"中的 Windows: (也可在“项目类型”中选其它语言中的“Visual C#") 按确定后,显示Form的设计画面:

将工具箱中ReportViewer拖入至Form1中,将Form1适当的调大一点: ReportViewer教程(2)-添加空报表Report1.rdlc 这样就在Form1上创建了一个默认名为"ReportViewer1"的控件,这个控件 就是用来浏览报表的控件。 (如果是用C#语言就创建了默认名为"reportViewer1"的控件,是第一个字母的大小写有区别)点击"ReportViewer1",在它的右上角出现了一个小三角形:

点击右上角的小三角形,点选"在父容器中停靠": 出现以下画面: 打开解决方案资源管理器(按Ctrl+Alt+L或在菜单->视图->解决方案资源管理器):

右击这个项目名称"ReportViewerTest",在出来的菜单上选: 添加->新建项,如下图所示: 在添加新项对话框中选"报表",名称就用默认的Report1.rdlc: 再点添加后,出现Report1.rdlc的设计画面:

选择工具箱中报表项下的"表",将"表"拖到Report1.rdlc设计窗体中: 将"表"拖到Report1.rdlc设计窗体中后,会自动生成“table1" 表,如下图: 红框以内就是"table1" 表。

RDLC 报表的制作资料讲解

R D L C报表的制作

在 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 下面就开始制作一张分组统计的简单报表: 打开 VS ,新建一个 WinForm 程序,添加一个新建项,选择报表

2 3 4报表是要数据绑定的,因此下一步添加数据源。可以通过添加“添加数据源”来通过数据库连接字符串链接到一个表或视图,不过也不必通过数据库来给dataset,取消弹出的“配置数据适配器”界面。打开dataset 直接右键添加一个“table” 5 6 7从报表设计页的“工具栏”上拖一个“表”到报表上。此表默认有三行,header、detail、footer,顾名思义:header 即是表头,detail 就是要显示的内容,footer为表尾,可以在这里进行一些统计信息。并且对表格进行相应的格式设计,加上表格边宽,字体居中等。把相应的数据字段绑定上去,直接把

相关文档
最新文档