资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
利用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 ClientForm1.Size = 750, 300第二步:为窗体(Form)添加报表查看器(Report Viewer)报表查看器,我们可以把它理解为显示和预览报表的容器。它不仅可预览输出报表,还可帮助将报表信息生成各种格式(PDF或Excel等等),当然也包括打印功能。请按如下步骤在Form1上放置好报表查看器控件:依次找到工具箱(ToolBox)报表报表查看器(ReportViewer),并把它拖到Form1上。这会创建一个名为reportViewer1的新实例。通过设置reportViewer1.Dock = Fill,报表查看器将会填充窗体的整个区域,以显示报表。在完成第一步与第二步之后,窗体看起来应该如图1所示:图1第三步:为项目添加数据集(DataSet)数据集是伴随报表查看器而来的,它保存并提供从数据源而来的原始数据,我们便可对这些原始数据进行处理或在C#程序中输出。请依照如下步骤添加数据集:从解决方案资源管理器中选择“添加”“新建项”“数据集”,将其名称DataSet1修改为dsProduct,并单击添加按钮完成。添加一个数据表到新创建的数据集中。数据表实质上是用来加载报表数据的,在设计报表时,将会用到DataSet/DataTable中的相关信息。以下为添加数据表到数据集(dsProduct)中:从解决方案资源管理器中双击dsProduct,将会打开设计视图,右键单击并选择添加数据表。接着,单击表头修改名称为dtProductList,如图2:图2接下来开始为数据表(dtProductList)添加列,此时的设计视图应该如图3所示。右键单击dtProductList并选择添加列(Column)。图3重复以上步骤添加以下列: ProductName (String)QuantityPerUnit (String)UnitPrice (Double)UnitsInStock (Double)UnitValue (Double):一个基于UnitsInStock * UnitPrice的计算域在添加列时,默认为String数据类型,添加完之后请转到属性窗口,修改相应的列为Double类型。请看图4,现在的数据表看上去应该就像这样子了。同时,你也可查看属性窗口来修改数据类型。图4第四步:为项目添加报表到目前为止,我们已经创建了项目,添加了报表查看器与数据集;现在,是时候创建一份整洁、优美的报表了。需按照以下步骤生成报表(rptProductList.rdlc):从解决方案资源管理器中选择“添加”“新建项”“报表”,把名称Report1.rdlc修改为rptProductList.rdlc,并单击添加按钮完成。项目可能会像图5这样;而添加完报表之后,就可以开始使用数据集(DataSet)进行设计了。图5无论你是第一次设计报表的新手,或是历经沙场老手,都必须与以下三种最基本的报表区域打交道:页眉(或叫表头)、页脚、表体。一般来说,报表在设计时,就应该有一个腹稿,如多大的纸张、应该怎样排版等等。当然了,如果能在动手之前,先在纸上画个草图,这样更好。我们以图6为例,制作如图所示的报表。在页眉中,已经有了报表名及报表日期,表体中有产品的相关信息列表,而页脚中有页码。图61、页眉我们从页眉开始进行相应设置。当添加新报表到项目时,默认情况下,在报表设计器中只能看到表体。右键单击报表设计器的表体之外处,选择“添加页眉”,这会在报表中添加一个页眉,可以随意调整页眉与表体区的高度,请看图7,图7中减少了表体的高度,增加了页眉的高度。图7在报表设计器的工具箱中,你可以看到用于设计报表的各种各样的控件。在这个例子中,会用到TextBox、Line和Table控件。现在我们开始设计页眉。拖动两个TextBox并把它们置于页眉区,TextBox既能显示静态也能显示动态的数据,而Line控件用于把页眉从表体区中分隔出来。控件放置好之后,可以修改它们的属性以显示我们所需的值,例如可以指定一个TextBox为报表标题,而另一个TextBox显示当前日期。选择TextBox之后,可直接在其内输入静态文本。请照以下修改标题TextBox:Value = Product ListColor = Purple而日期TextBox则修改为:Value = 报表日期: & TodayColor = Purple要注意,日期TextBox的Value属性以“=”符号打头,这代表它不是一个简单的静态文本,而是一个表达式,这个表达式是字符串报表日期:与函数Today的结果。我们可以对报表中所有对象,指定任何你想要的名称,一般对大多数控件而言,保持默认名称就可以了,此处把标题TextBox的名称(即Name属性)指定为“txtTitle”。完成页眉设计之后,应该如图8所示的样子:图82、表体表体是承载信息的详细区域,是整个报表最重要的部分,而且我们也看到了,当添加报表到工程时,表体已经自动添加了,我们只需要在上面放些控件就行了。从传统意义上来说,表体区是用于显示详细数据的(在本例中,为产品信息),并且通常为多行信息,而随着报表上数据的增多,表体区也相应会扩展,但一般来说,报表只会设计为一页(信纸或A4纸大小)。在报表设计器的空白位置,右击,选择“报表属性”,可方便地对纸张大小、方向、页边距等属性进行设置。在表体区中,有三种最常用的控件:Table、Matrix、List,在本例中会使用Table控件。在报表设计界面中,拖动并把Table控件放置于表体区中,你会看到,这会生成一张三行三列的表,而中间一列则已被标记为:Header、Detail、Footer。添加了Table控件后,会出现“数据集属性”窗口,可在其中指定“数据源”和“可用数据集”。Table控件是显示为表格形式的,但也可以把它看作是一堆TextBox的组合。Talbe中的每个单元(Cell)都与TextBox一样,也就是说,可以在其中输入静态文本,或指定一个动态表达式。在开始设计表体区之前,记得要多添加两列(我们的报表中有5列喔),添加列非常简单,依照以下步骤就行了:(1)在表体区中选择Table控件。(2)左键单击最右边一列的表头(此处假设你是从右边添加新列的)。(3)右键单击表头,并选择“Insert Column to the Right”(在右边插入列)。现在报表看起来应该像图9了,可以依据列中的数据随意调整列的宽度。图9可以设置Table控件的边框类型、改变任一单元格的字体等,也可以指定在Table控件显示哪些内容。我们从第一列开始,随后的每一列也一样。单击最上方的单元格并依次输入:表头1:“Product Name”表头2:“Packaging”表头3:“Unit Price”表头4:“Units in Stock”表头5:“Stock Value”而在接下来的详细数据区(即前面的Detail)中,需要输入表达式,其为dsProduct.dtProductInfo中的列,在此既可以手工输入表达式,也可以从数据源(Data Sources)工具箱(见图7左边)中拖放实现。如果想要手工输入,请从数据区的第一列至最后一列,单击单元格并输入:Detail 1: =Fields!ProductName.ValueDetail 2: =Fields!QuantityPerUnit.ValueDetail 3: =Fields!UnitsInStock.ValueDetail 4: =Fields!UnitPrice.ValueDetail 5: =Fields!UnitsInStock.Value * Fields!UnitPrice.Value请留意Detail 5,它是一个对Units in Stock与Unit Value相乘计算之后的输出。对于计算列,可先在Detail中输入等号,产生符号后,双击该符号,弹出“占位符属性”对话框,点击“fx”按钮,详细编辑公式。另外提醒一点,如果是拖动列到Table控件中的数据区来实现的,此时如果表头为空,它会自动添加表头。最后,在Table控件的最下面一行,添加一累计栏,选择表体区最后一行的第4与第5列的单元格,输入:单元格4:“Total Value:”单元格5:=SUM(Fields!UnitsInStock.Value * Fields!UnitPrice.Value)单击单元格5,这是使用了一个内置的SUM()函数来得到累计的结果。3、页脚正如前面添加报表页眉一样,在打开的报表设计器中,右键单击并选择页脚(Page Footer),见图7。拖动一个Line和TextBox控件置于页脚区,并在TextBox中输入以下表达式:Value: =Page: & Globals!PageNumber & / & Globals!TotalPages可以看到,此处使用了PageNumber和TotalPages,两者皆为全局变量。现在,报表应该如图10这样了,此处,还改变了一点颜色,把数值类数据右对齐,把Table当作一张Excel工作表好了,可以随意调整为你想要的外观。拖动Table左连缘可调整行高。图10利用表达式生成器编辑公式。表达式生成器是Reporting Services中一个非常强大的工具,正如图11中所见,Stock Value是通过SUM函数计算得到的,DateSet中的所有数据都可以由“Fields!”关键字访问。图11第五步:编写赋予报表生机的C#代码从解决方案资源管理器中,选择Form1,右键单击并选择“查看代码”,为Form1_Load添加以下代码:using System.Data.SqlClient;using Microsoft.Reporting.WinForms;private void Form1_Load(object sender, EventArgs e)/声明连接字符串string cnString = (local); Initial Catalog=northwind;+User Id=northwind;Password=northwind;/如果使用标准安全属性,请改为以下代码/string cnString = Data Source=(local);Initial Catalog
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号