当前位置:文档之家› 真正地全动态报表RDLC和ReportViewer

真正地全动态报表RDLC和ReportViewer

真正地全动态报表RDLC和ReportViewer
真正地全动态报表RDLC和ReportViewer

阅读本文需要有XML解析及https://www.doczj.com/doc/a36836549.html, 相关经验。

本文编译器使用Visual Studio 2005数据库采用XML格式ReportView 版本为https://www.doczj.com/doc/a36836549.html, 版本为2.0

一、水晶报表的缺陷

Crystal Repotrs的功能固然很强大,但是对我们写程序的人来说,是否支持动态生成才是最重要的。如果报表只能静态生成再嵌入到程序中,实在有些没意思。

不巧的是强大的水晶报表这一点做的很不好,我们可以在程序中动态修改数据源,也可以动态修改文本和字段,但是报表的一大特色,数据图表,却只能静态生成。也就是说,假如我设计报表时添加了一个图表,用户希望能在多个字段中选择自己想显示的,动态显示到图表中,水晶报表就做不到。对它来说,我们至多只能在程序中得到一张位图,这样就没有意义了。

这个时候我发现了ReportViewer,它用来显示RDLC语言表述的报表。RDLC最初被用在SQL Server for XML上。它实际上是一个XML文本,这就意味着我们在程序中很容易更改它的构架。ReportViewer是RDLC的浏览器,本身没什么好说的,需要注意的是它的数据源必须是DataTable对象。

二、结构模型

猛的一看有点复杂呵呵,其实还是挺简单的。

数据源

可以是传统数据库,也可以是XML表格

Data Adapter 及Connection 等

用来连接传统的数据库

DataSet

用来存储数据,同时可以直接操作XML文件

BindingSource

利用DateSet来填充BindingSource,这一步数据中转逻辑上有点多余,但是必不可少ReportDataSource

利用BindingSource来填充ReportDataSource,......-_-!!

ReportViewer

利用ReportDataSource填充的数据及指定给它的RDLC报表文件来显示报表

三、示例代码

请大家注意:

1.这里我呈现给大家的只是如何实现报表,报表本身的制作及RDLC描述语言不在讨论范围。https://www.doczj.com/doc/a36836549.html,同样不在讨论范围,感兴趣的读者可以参考这篇文章:《用VC轻松实现https://www.doczj.com/doc/a36836549.html,》。

2. 如果按照MSDN上介绍的步骤,可以在VB或C#等语言中实现报表显示,但不能用在VC中,因为向导可能产生中文变量,而VC目前还不支持中文变量。请使用VC的读者按照我介绍的步骤来实现。

1.制作报表

新建一个空项目,在解决方案资源管理器中右键点项目名,添加新建项,找到Report,起个名字,点确定。

具体的制作不在这里说了,请参考相关的文章,或者下载我的示例代码,里面有两个做好的报表文件。

2.制作XML数据库文件

https://www.doczj.com/doc/a36836549.html,连接传统数据库这里就不多说了,参见上面那篇链接文章。

方法1:

安装了SQL Server for XML的话,直接建立数据库模型生成XML文件即可。

方法2:

如果没有安装SQL Server for XML,需要绕个弯子:

1.先使用SQL Server 或其他数据库建立传统的数据库模型。

2.写个临时程序,利用https://www.doczj.com/doc/a36836549.html,将数据库模型导入DataSet中。

3.利用DataSet::WriteXml("文件名");的方法生成XML数据库文件。

方法3:

同样没有安装SQL Server for XML时:

1.先写一个程序,在DataSet中建立数据库模型,当然编程建立要比方法1中的向导建立麻烦一些。

2.利用DataSet::WriteXml("文件名");的方法生成XML数据库文件。

3.连接数据库

https://www.doczj.com/doc/a36836549.html,不再多说。

//连接XML文件 DataSet^ DateSet1 = gcnew DataSet(); DataSet1->ReadXml("XML文件");

4.一系列的数据填充

BindingSource^ aBindingSource; ReportDataSource^ reportDataSource1; //根据DateSet1设置BindingSource aBindingSource = gcnew BindingSource(); aBindingSource->DataMember = "Table1"; //注意,表名要同创建报表时用的相同aBindingSource->DataSource = DataSet1; //根据BindingSource设置ReportDataSource reportDataSource1 = gcnew ReportDataSource(); reportDataSource1->Name = "DataSet1_Table1"; reportDataSource1->Value = aBindingSource; //根据ReportDataSource设置ReportViewer控件的数据源,ReportViewer控件最终用来显示报表reportViewer1->LocalReport->DataSources->Add(reportDataSource1);

reportViewer2->LocalReport->DataSources->Add(reportDataSource1); ..... //多个报表窗口可以使用同一个数据源

5.连接要显示的报表

reportViewer1->LocalReport->ReportPath = "rdlc文件1";

reportViewer2->LocalReport->ReportPath = "rdlc文件2"; .....

6.显示报表

reportViewer1->RefreshReport(); reportViewer2->RefreshReport(); .....

7.报表的动态修改

对于普通的数据,只需修改DataSet即可

DataRow^ row = DataSet1->Tables["Table1"]->NewRow(); row[0] =

newd->comboBox1->Text; //假设数据来自comboBox控件 row[1] =

newd->comboBox2->Text; ..... DataSet1->Tables["Table1"]->Rows->Add(row); //刷新一下报表 reportViewer1->RefreshReport(); reportViewer2->RefreshReport(); .....

对于图表之类的数据,需解析RDLC文件,修改之,然后调用RefreshReport()。由于其格式是XML文本,故比较容易,这方面不再多说,感兴趣的读者可以自己解析一下。

四、示例程序

在示例程序中我提供了一个记账本功能的小程序,使用XML数据库文件,两张RDLC 报表文件。由于时间关系,没有去做RDLC文件解析,请大家见谅。

report.exe

主程序

ReportViewer.exe

没有安装ReportViewer的客户机需要安装此文件,ReportViewerLP.exe是中文包。ngen.exe

动态报表的生成速度比较慢,有个解决办法,在命令行方式下敲入ngen install report.exe 回车,可以将程序及其依赖项编译成机器码并安装到本机全局映像中去,从而提高运行效率。删除前记得ngen uninstall report.exe一下。

xml文件及rdlc文件

一个是数据库文件,一个是报表文件,均是XML文本格式,可以随意打开浏览编辑。运行效果:

台账制作步骤

小学、幼儿园校园安全“防护网”安全管理工作台账制作步骤 一、制作八大类台帐盒,共八个台帐盒,按台帐类型制作并贴上台帐类型名称 二、八大类台帐逐类制作 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、通过安全资料的收集,归纳分析学校安全工作中存在的问题和薄弱环节,以促进学校不断改进安全工作,不断提高学校安全工作水平。

Reportviewer_报表

https://www.doczj.com/doc/a36836549.html,服务器控件使用之Reportviewer 报表 1.Reportviewer 报表 1.1.Reportviewer控件 注:本教程附2个事例: ●演练:在本地处理模式下将数据库数据源与ReportViewer Web 服务器控件一起使用 ●演练:在本地处理模式下将业务对象数据源与ReportViewer Web 服务器控件一起使用 如果您已经对ReportViewer控件基础知识比较了解,可以直接参阅事例。 1.1.1.简介 Microsoft Visual Studio 2005 包括报表设计功能和ReportViewer 控件,使您可以将功能完整的报表添加到自定义应用程序。报表可以包含表格格式数据、聚合数据和多维数据。提供ReportViewer 控件的目的是可以处理和显示应用程序中的报表。控件有两种版本。 ReportViewer Web 服务器控件用于在https://www.doczj.com/doc/a36836549.html, 项目中驻留报表。ReportViewer Windows 窗体控件用于在Windows 应用程序项目中驻留报表。 这两种版本的控件都可以配置为以本地处理模式或远程处理模式运行。配置为何种处理模式将影响有关报表从设计到部署的所有方面。 ●“本地处理模式”是指ReportViewer 控件在客户端应用程序中处理报表。所有报表都 是使用应用程序提供的数据作为本地过程处理的。若要创建本地处理模式下使用的报表,需要使用Visual Studio 中的报表项目模板。有关详细信息,请参阅将ReportViewer 配置为进行本地处理。 ●“远程处理模式”是指由SQL Server 2005 Reporting Services 报表服务器处理报表。在 远程处理模式下,ReportViewer 控件用作查看器,显示已经在Reporting Services 报 表服务器上发布的预定义报表。从数据检索到报表呈现的所有操作都是在报表服务器上 处理的。若要使用远程处理模式,则必须具有SQL Server 2005 Reporting Services 的 许可副本。有关详细信息,请参阅将ReportViewer 配置为进行远程处理。 若要在应用程序中使用ReportViewer 控件,则必须了解如何将控件添加到项目表单或网页中,如何配置控件来使用本地报表定义或服务器报表,如何更新数据源引用,以及如何在应用程序中测试和部署报表和控件。提供的演练有助于您学习这些关键技能。有关详细信息,请参阅示例和演练。 1.1. 2.将Reportviewer配置为进行本地处理

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”

如何在rdlc报表中实现分栏效果

如何在rdlc报表中实现分栏效果 在报表制作上,偶而会有多栏报表的须求。 此多栏报表在Crystal Report上早有支援,还不错用。 一直想在reporting service上也做一支多栏报表看看。刚好同事在做就跟著学了一下。 回主题,多栏报表样式大致如下: 代码名称代码名称代码名称 第1笔…第5笔…第9笔… 第2笔…第6笔…第10笔… 第3笔…第7笔… 第4笔…第8笔… 此例中报表的栏位只有二个,“代码”与“名称”。以3“column(栏)”印在报表上。 目的: 制作RDLC 多栏报表,使用VS2010。 解法: 在同事的努力下,找到答案了。真是一个不简单的答案啊。(=.=!!) 设定多栏的参数只有一个,但真要有多栏的效果出现还有些事要注意。整理如下: 一、多栏报表参数设定。 二、注意报表宽度是否够“窄”。 三、资料栏位抬头显示设定。 四、预览时要用「整页模式」。 实作重点节录: 首先,先给上设定好的多栏报表设计图。 一、多栏报表参数设定 多栏报表的参数只有一个:Columns。 位置在:【报表属性】->[Columns].[Columns] 另一个参数[ColumnSpacing]在调校报表应该也会用到, 另外也可把[PageSize]参数设好,我的范例是A4横印,所以[PageSize].[Width] = 29.7cm。 另个参数[Margins]也很重要,此例我全设成0.8cm以配合。 二、注意报表宽度是否够“窄” 此问是在Crystal Report也有,大概多栏报表都要特别注意的吧。 位置在:【主体属性】->[Size].[Width] 若报表主体太宽造成整体报表宽度超过纸张宽度,那多栏的效果也不会出现。以此例来说:

利用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语句、新建存储过程、使用现有存储过程。根据需求选择一种配好自己的数据源。

reportviewer教程

打开Visual Studio后,选择"文件"—>"新建项目",打开新建项目对话框: 打开新建项目对话框后,在“项目类型”中选“Visual Basic"中的Windows: (也可在“项目类型”中选其它语言中的“Visual C#") 再在模板中选"Windows 应用程序",并在名称中输入名称"ReportViewerTest":

按确定后,显示Form的设计画面: 将工具箱中ReportViewer拖入至Form1中,将Form1适当的调大一点:

这样就在Form1上创建了一个默认名为"ReportViewer1"的控件,这个控件 就是用来浏览报表的控件。 (如果是用C#语言就创建了默认名为"reportViewer1"的控件,是第一个字母的大小写有区别)点击"ReportViewer1",在它的右上角出现了一个小三角形: 点击右上角的小三角形,点选"在父容器中停靠": 出现以下画面:

打开解决方案资源管理器(按Ctrl+Alt+L或在菜单->视图->解决方案资源管理器): 右击这个项目名称"ReportViewerTest",在出来的菜单上选: 添加->新建项,如下图所示:

在添加新项对话框中选"报表",名称就用默认的Report1.rdlc: 再点添加后,出现Report1.rdlc的设计画面:

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

报表的使用步骤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中的相关信息。

VS2010_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.doczj.com/doc/a36836549.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工程,添加新建

制作UFO报表之流程

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

RDLC在不预览的情况下打印本地报表

演练:在不预览的情况下打印本地报表 Visual Studio 2012 其他版本 Visual Studio 2010 Visual Studio 2008 Visual Studio 2005 此主题尚未评级 - 评价此主题 本演练演示如何使用 LocalReport 对象和 CreateStreamCallback 回调函数以编程方式在不查看的情况下打印报表。 先决条件 您必须具有访问示例报表和数据源的权限。 有关更多信息,请参见用于打印演练的示例数据和报表。 执行下列步骤可创建控制台应用程序项目。 创建新的控制台应用程序项目 1. 在“文件”菜单上,指向“新建”,然后选择“项目”。 2. 在“已安装的模板”窗格中,选择“C#”或“Visual Basic”。 根据 Visual Studio 中的启动设 置,“C#”或“Visual Basic”节点可能会显示在“其他语 言”下。 3. 在“模板”窗格中,选择“控制台应用程序”。 4. 在“名称”框中,键入项目的名称:PrintLocalReport。 5. 在“位置”框中,输入要保存项目的目录,或者单击“浏 览”以导航到该目录。 6. 单击“确定”。 项目与显示“Program”代码文件的“代 码”窗口一起打开。 添加引用 1. 从“项目”菜单中,选择“添加引用”。 2. 在“添加引用”对话框的“.NET”选项卡上,选择

System.Drawing、System.Windows.Forms 和 Microsoft.ReportViewer.Winforms。 3. 单击“确定”。 添加现有的 report.rdlc 和 data.xml 文件 1. 从“项目”菜单中选择“添加现有项”。 随即将显示“添加 现有项”对话框。 2. 定位到保存 report.rdlc 和 data.xml 的文件夹。 然后选 择这两个文件。 3. 单击“添加”。 这两个文件将作为项目的一部分显示在解决 方案资源管理器中。 添加代码 1. Program 代码文件应该已经打开并处于待编辑状态。 如果该 文件尚未打开,请在“解决方案资源管理器”窗口中双击 Program.cs 或 Module1.vb 文件。 2. 根据您的编程语言选择下面的代码,并用其替 换“Program”文件中的现有代码。 注意 如果您的计算机上没有安装名为 Microsoft XPS Document Writer 的打印机,请将粗体代码更改为您计算 机上的指定打印机。 3. C# 4. 复制 5. using System; 6. using System.IO; 7. using System.Data; 8. using System.Text; 9. using System.Drawing.Imaging; 10. using System.Drawing.Printing; 11. using System.Collections.Generic; 12. using System.Windows.Forms; 13. using Microsoft.Reporting.WinForms; 14. 15. public class Demo : IDisposable 16. { 17. private int m_currentPageIndex; 18. private IList m_streams; 19.

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)添加高低连线。选择“预算成本”或“实际成本“直线图,右键单击选择“数据系列格式→选项→高低点连线”,右键点击连线可以进行连线格式设置,比如将线条设置

微软RDLC报表动态图片(二维码)

微软RDLC报表,动态加载图片文件(二维码) 我是一个程序员,有时候莫名其妙的遇到一些不好解决的问题,于是我就记录了下来,希望对大家有用! 开发环境:VS2010(中文),IIS7.0,IE8及以上 1、首先讲一下,我的动态的图片是一个二维码。 (1)引用一下ThoughtWorks.QRCode.dll这个DLL,如果没有的话去网上下载一个。或 ThoughtWorks.QRCode.rar 者我这个word文档里面是有一个的 (2)然后呢,当然要有一个存放二维码的文件夹,用来存放生成之后的二维码,这个名字随便起 (3)最后,当然是报表后台的代码了,不过RDLC报表是动态生成的,要写在aspx.cs 里面,写的这么清楚了,大家不会不明白吧: private void create_two(string nr)//nr 这个参数当然是需要生成二维码的文字或字段 { Bitmap bt; string enCodeString = nr; QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8); string filename = nr; bt.Save(Server.MapPath("~/QRImage/") + filename + ".jpg"); } (4)当然如果报错了,报红线了,那当然要去解析一下,system.drawing神马的,去引用一下吧,当然你加进来的ThoughtWorks也要去引用一下。 (例如using houghtWorks.QRCode.Codec;) 2、当然是要把生成的这个二维码放到恶心的RDLC报表上,这里讲解的是VS2010,如果环境 不对,请绕路。 (1)

VS2010报表ReportViewer数据的生成

VS2010报表ReportViewer数据的生成-添加程序运行过程中生成表字段与参数 开发环境:vs2010 报表工具:ReportViewer.exe 这个要另外安装 开发说明: 由于在开发、运行过程中,会生成一些汇总统计表,这样的表不一定会以数据库表的形式固定存在,因此,会以运行过程中,用DataSet\DataTable、参数的方式传递给ReportViewer。 关键点: 1、ReportViewer在制作报表时,要生成用户数据,需要添加数据表,在制作过程中,调用该表。但,如果该表是通过参数传递过来,会无法读取该表,因此,需要手工添加一个临时表给它。

2、临时表生成,解决,添加新建项方案中,添加新建项,数据-数据集,工具栏,添加table,再添加键,生成一个可供调用的临时表。 3、VS2010在制作表过程中,菜单会出现在两个地方,一个在主菜单出现,下拉后内容极少,不包括数据参数,一个在【视图】中,打开,在工具栏会出现数据参数等更多内容。

4、有了临时表、参数,就可以布局制作报表了,统计时间是数据参数传递的。

5、统计表的数据传输与参数参数程序 注:传递数据表 Microsoft.Reporting.WinForms.ReportDataSource r = new Microsoft.Reporting.WinForms.ReportDataSource(); https://www.doczj.com/doc/a36836549.html, = "my_dt"; r.Value = da; 传递的表名称要与设计时的名称一致。

this.reportViewer1.LocalReport.DataSources.Clear(); this.reportViewer1.LocalReport.DataSources.Add(r); 传递参数 ReportParameter p = new ReportParameter("dt", dt); this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p }); _ds是通过中间层传输过来。 【参考代码】 private void bt_Sum_Class_Click(object sender, EventArgs e) { string dt = this.dateTimePicker1.Value.ToString("yyyy年MM月dd日") + " -至-" + this.dateTimePicker2.Value.ToString("yyyy年MM月dd日"); this.lb_title.Text = "[" + this.dateTimePicker1.Value.ToString("yyyy-MM-dd") + "]至[" + this.dateTimePicker2.Value.ToString("yyyy-MM-dd") + "]" + this.bt_Sum_Class.Text; DataSet _ds = gl.DecompressGetBytes(gl.BL.Get_Sum_Between_Classified_Zip(this.dateTimePicker1.Value, this.dateTimePicker2.Value)); DataTable da = _ds.Tables[0]; this.dataGridView1.DataSource = _ds.Tables[0]; this.dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); for (int i = 1; i <= this.dataGridView1.Columns.Count - 1; i++) {

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)

相关主题
文本预览
相关文档 最新文档