ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:501.12KB ,
资源ID:4728737      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4728737.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(XtraReports简单应用.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

XtraReports简单应用.docx

1、XtraReports简单应用XtraReports 使用说明一 安装 Dxperience最新版本是Dxperience v8.33。安装完组件库之后,Dxperience中的控件会自动嵌入到 vs系统中。在创建报表等项目是并不需要添加引用,系统会自动为你添加需要的引用。二 创建一个简单报表我们以一个最简单的hello word例子开始。首先打开vs2005,新建一个项目,点击项目右键添加一个新项,选择XtraReport Class v8.3(选择XtraReport Wizard v8.3通过向导创建),点击确定,弹出提示框,选择“是”,则新的报表文件将添加进入App_Code文件夹内,

2、如果选择“否”,则直接添加进入项目中,会出现不能显示设计器的情况,所以建议选择“是”。这样一个新的报表文件添加进来了,但是一个报表文件是不能直接显示的,是要嵌入到页面中才能显示给客户,将一个报表文件加入到页面中其实很简单,只需要加入几句话就可以了,首先添加DevExpress.Web引用,然后新建一个页面,在页面的前台添加下面的引用:在form标签中加入可以编辑报表显示的边框,尺寸等等。在后台加入下面的程序:protected void Page_Load(object sender, EventArgs e) ReportViewer.Report = new XtraReport1();这

3、样报表就可以显示出来了,但是现在我们什么也看不到,因为报表中还没有添加任何内容。下面我们向报表中添加内容,达到我们想要的显示效果。在初始的设计器中只有PageHeader、明细和页脚三个带区。如果想要添加更多的块可以右键点击设计器的任何地方,弹出菜单,选择想要添加的带区,除了Group Header以外每一个带区都只能出现在一个报表中一次。控件:当我们安装完XtraReports组件之后,在工具栏中就会自动加入报表控件组,我们常用到的是控件是XRLabel, XRTable。对于任何复杂报表,这些工具基本可以满足你的要求。首先我们将XRLabel拖拽到Detail带区。在属性窗口修改Text属

4、性为“hello word”,修改Font属性,将字体放大些。搞定!我们的第一个报表程序完成了,就这么简单,不需要长长的代码和复杂的过程。从我们做的第一个简单的例子就可以看出,Dxperience的这个报表控件特点就是简单、易用,设计器清爽、美观。同时智能的创建向导也更加快捷使用。三 连接数据源上面我们只是创建非常简单的报表,对于连接数据源,创建复杂报表XtraReports也提供了非常好的解决办法。下面我们看看怎么样连接数据源,显示数据信息。XtraReports对于web项目中数据源的绑定不如winform项目灵活。我目前知道有两种方式,一种是:是通过项目中添加DataSet文件的形式,通

5、过DataSet得到的数据源添加到报表的数据源中。第二种是:通过后台编写代码实现数据绑定,如果还有其他方法,敬请赐教。首先我们了解下第一种通过DataSet绑定数据源方式。在当前项目中(最好是在报表文件所在的目录下)添加DataSet文件,则系统会弹出链接数据源的向导, 选择你的数据源, 点击【下一步】点击【下一步】点击【下一步】默认选中Use SQL statemens,点击【下一步】点击【Query Builder】.弹出上面的对话框,这里可以编写sql语句了,点击【ok】,此时数据源产生了。下面就是要将这个DataSet的数据源添加到报表中去。打开报表的设计视图,在工具栏的Data组中选

6、择DataSet,将DataSet拖拽到设计器界面中,如图:会弹出如图所示的界面,在Typed dataset中,选择刚刚创建的DataSet1,这样刚刚创建的DataSet数据源就添加到了报表文件中。此时你会发现在Field List窗口中多了一个dataset11,这个就是我们刚刚添加的数据源,将这些字段拖拽到我们报表的控件上,就达到了绑定数据源的目的,现在我先介绍下后台代码的绑定数据源方式。首先创建数据源,这里以SQL Server 2005为例,创建一个PersonInfo的表。CREATE TABLE dbo.PersonInfo( id int IDENTITY(1,1) NOT

7、NULL, name nvarchar(50), age int, sex int, wage decimal(8, 2)数据创建完之后,然后创建一个的报表文件,在设计器示图下,从工具栏中拖拽一个XRTable,对XRTable的操作与html中的table一样。插入指定列。有些情况报表的带区是不需要的,我们只需在设计时将其删除,例如,这里我们把PageFooter删除了。设计页面已经完成,下面就要指定报表的数据源。在想要嵌入报表的页面的后台中插入下面的代码:protected void Page_Load(object sender, EventArgs e) ReportViewer.Re

8、port = new XtraReport1(); DataSet ds = GetData(); ReportViewer.Report.DataSource = ds; /使用连接数据源的普通代码,在此省略 protected DataSet GetData() 报表的数据源已经给定了,那么就要将数据与控件对应。在报表的代码页面加入下面的代码:public XtraReport1() InitializeComponent(); SetReportData(); / / 设置报表数据源 / private void SetReportData() this.xrTableCell1.Dat

9、aBindings.Add(Text, DataSource, id); this.xrTableCell2.DataBindings.Add(Text, DataSource, name); this.xrTableCell3.DataBindings.Add(Text, DataSource, sex); this.xrTableCell4.DataBindings.Add(Text, DataSource, age); this.xrTableCell5.DataBindings.Add(Text, DataSource, wage);大功告成,让我们看看效果吧!但是感觉还有一些不足,时

10、间戳,数据列没有名称,性别显示是0,1,工资字段没有汇总。下面我们一项一项解决这些问题。注意:ReportHeader带区和PageHeader带区的区别,ReportHeader是显示报表的头部,只显示一次,与报表的页数无关,只在报表的第一页的头部显示;PageHeader是页头显示,无论此报表多少页,每页都会显示PageHeader带区中的部分,ReportFooter和PageFooter与其道理相同,所以我们通常将大标题和时间戳放在ReportHeader,将列名称放在PageHeader内。每页汇总放在PageFooter,总汇总放在ReportFooter中,设计视图如图:这里注意

11、边框的调整,Detail带区中的Table的边框是没有上边框的,这样在列表显示时,不会因为边框重合而引起边框宽度增加。显示效果如图所示:下面看看汇总的实现,汇总有总计,平均值,百分比,最大,最小等等,上例中我们实现的是对工资求总和,首先添加PageFooter带区,拖拽一个XRLabel设置Text为“工资总计:”,再拖拽一个XRLabel,点击summary属性的省略部分,会弹出如图所示部分:这里可以设置绑定列,汇总函数类型,结果显示的字符串格式,是否忽略空值,汇总类型等。这里的汇总类型有多种形式,有按组汇总,按页汇总,整个报表汇总。 汇总属性设置完毕,还要给这个控件绑定数据,在后台绑定其他

12、控件的地方加上这句:this.xrLabel3.DataBindings.Add(Text, DataSource, wage);其他的汇总都是一样的! 差不多大功告成了,还有一些不足就是,性别显示是0或1,我们需要显示的是男和女,还不需要通过修改数据实现,那XtraReport可以实现吗?告诉你,是完全可以的!使用HtmlItemCreated事件,在性别列设置他的HtmlItemCreated事件,加入下面的代码:if (e.ContentCell.InnerText = 0) e.ContentCell.InnerText = 女; else if (e.ContentCell.Inne

13、rText = 1) e.ContentCell.InnerText = 男; else e.ContentCell.InnerText = ; 显示如图所示: 可以了,报表终于完成了,开始打印了,哎!?怎么打印呢,忘了介绍了,现在我们将打印,预览,翻页等介绍一下。在需要嵌入报表的页面的前台加入下面这句:dxxr:ReportToolbar ID=ReportToolbar1 runat=server ReportViewer= 注意:其中ReportViewer是需要控制的报表的ID。这样,我们的报表就可以有打印,转化格式保存,翻页(还没有完成)的功能了。数据如果太多了,我希望每页只显示3条

14、数据怎么办?下面涉及到翻页了,虽然打印工具栏里有翻页功能,但是需要在报表里设置页数才能生效。首先声明变量:int RecordCount = 0; /累加每页的记录数写Detail的BeforePrint事件,写入下面的代码:/ / 实现每页下面打印多少条记录 / private void Detail_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) /实现每页下面打印多少条记录 RecordCount += 1; if (RecordCount = 3) /每页打条记录 Detail.PageBreak

15、 = PageBreak.AfterBand; RecordCount = 0; else Detail.PageBreak = PageBreak.None; 这样,就可以实现分页了,看看下面的效果:剩下最后一步了,就是字体问题,XtraReport支持除宋体,仿宋之外的大部分字体,所以,我们要对报表控件的字体属性设置成支持的字体,否则,打印或者转化成pdf格式的文件都会将汉字转化成方格。至此,一张简单的数据报表完成了,绘制报表还有很多技巧是在使用中不断摸索出来的。工作愉快,共同进步。问题:目前存在的问题是:1、Developer Express .Net 8.3.3版本不支持宋体和仿宋体字

16、体,当汉字设置成宋体时,打印与生成pdf文件时,汉字会变成方格,生成其他格式或浏览时不会发生问题。2、使用客户端报表设计器设计报表时,添加数据源问题,通过ODBC连接数据源时,Cache数据库不能得到数据源的表结构,无法添加数据源,所以只用Cache库就无法使用客户端报表设计器设计报表文件repx,然后通过页面调用repx报表文件的形式。3、启动带有报表的项目时或运行时都耗内存,运行速度慢。注:/文中省略的使用连接数据源代码 SqlConnection connect = new SqlConnection(); try SqlCommand command = new SqlCommand(

17、); SqlDataAdapter da = new SqlDataAdapter(); string strConn = server=HDCC-E; database=reportTest; User Id=sa; pwd=123; connect.ConnectionString = strConn; command.Connection = (SqlConnection)connect; da = new SqlDataAdapter(command); if (connect.State != ConnectionState.Open) connect.Open(); DataSet ds = new DataSet(); command.CommandText = SELECT * FROM PersonInfo ; command.CommandType = CommandType.Text; da.SelectCommand = command; da.Fill(ds); return ds; catch (Exception e) return null; finally if (connect.State = ConnectionState.Open) connect.Close();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1