XtraReports简单应用文档格式.docx
- 文档编号:17666818
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:16
- 大小:501.12KB
XtraReports简单应用文档格式.docx
《XtraReports简单应用文档格式.docx》由会员分享,可在线阅读,更多相关《XtraReports简单应用文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
在form标签中加入
dxxr:
ReportViewerID="
ReportViewer"
runat="
server"
>
/dxxr:
ReportViewer>
可以编辑报表显示的边框,尺寸等等。
在后台加入下面的程序:
protectedvoidPage_Load(objectsender,EventArgse)
{
ReportViewer.Report=newXtraReport1();
}
这样报表就可以显示出来了,但是现在我们什么也看不到,因为报表中还没有添加任何内容。
下面我们向报表中添加内容,达到我们想要的显示效果。
在初始的设计器中只有PageHeader、明细和页脚三个带区。
如果想要添加更多的块可以右键点击设计器的任何地方,弹出菜单,选择想要添加的带区,
除了GroupHeader以外每一个带区都只能出现在一个报表中一次。
控件:
当我们安装完XtraReports组件之后,在工具栏中就会自动加入报表控件组,我们常用到的是控件是XRLabel,XRTable。
对于任何复杂报表,这些工具基本可以满足你的要求。
首先我们将XRLabel拖拽到Detail带区。
在属性窗口修改Text属性为“helloword”,修改Font属性,将字体放大些。
搞定!
我们的第一个报表程序完成了,就这么简单,不需要长长的代码和复杂的过程。
从我们做的第一个简单的例子就可以看出,Dxperience的这个报表控件特点就是简单、易用,设计器清爽、美观。
同时智能的创建向导也更加快捷使用。
三连接数据源
上面我们只是创建非常简单的报表,对于连接数据源,创建复杂报表XtraReports也提供了非常好的解决办法。
下面我们看看怎么样连接数据源,显示数据信息。
XtraReports对于web项目中数据源的绑定不如winform项目灵活。
我目前知道有两种方式,一种是:
是通过项目中添加DataSet文件的形式,通过DataSet得到的数据源添加到报表的数据源中。
第二种是:
通过后台编写代码实现数据绑定,如果还有其他方法,敬请赐教。
首先我们了解下第一种通过DataSet绑定数据源方式。
在当前项目中(最好是在报表文件所在的目录下)添加DataSet文件,则系统会弹出链接数据源的向导,
选择你的数据源,
点击【下一步】——>
默认选中『UseSQLstatemens』,点击【下一步】——>
点击【QueryBuilder】.
弹出上面的对话框,这里可以编写sql语句了,点击【ok】,此时数据源产生了。
下面就是要将这个DataSet的数据源添加到报表中去。
打开报表的设计视图,在工具栏的Data组中选择DataSet,将DataSet拖拽到设计器界面中,如图:
会弹出如图所示的界面,在Typeddataset中,选择刚刚创建的DataSet1,这样刚刚创建的DataSet数据源就添加到了报表文件中。
此时你会发现在FieldList窗口中多了一个dataset11,这个就是我们刚刚添加的数据源,将这些字段拖拽到我们报表的控件上,就达到了绑定数据源的目的,
现在我先介绍下后台代码的绑定数据源方式。
首先创建数据源,这里以SQLServer2005为例,创建一个PersonInfo的表。
CREATETABLE[dbo].[PersonInfo](
[id][int]IDENTITY(1,1)NOTNULL,[name][nvarchar](50),
[age][int],[sex][int],[wage][decimal](8,2))
数据创建完之后,然后创建一个的报表文件,在设计器示图下,从工具栏中拖拽一个XRTable,对XRTable的操作与html中的table一样。
插入指定列。
有些情况报表的带区是不需要的,我们只需在设计时将其删除,例如,这里我们把PageFooter删除了。
设计页面已经完成,下面就要指定报表的数据源。
在想要嵌入报表的页面的后台中插入下面的代码:
DataSetds=GetData();
ReportViewer.Report.DataSource=ds;
}
//使用连接数据源的普通代码,在此省略
protectedDataSetGetData()
{
报表的数据源已经给定了,那么就要将数据与控件对应。
在报表的代码页面加入下面的代码:
publicXtraReport1()
InitializeComponent();
SetReportData();
///<
summary>
///设置报表数据源
/summary>
privatevoidSetReportData()
this.xrTableCell1.DataBindings.Add("
Text"
DataSource,"
id"
);
this.xrTableCell2.DataBindings.Add("
name"
this.xrTableCell3.DataBindings.Add("
sex"
this.xrTableCell4.DataBindings.Add("
age"
this.xrTableCell5.DataBindings.Add("
wage"
大功告成,让我们看看效果吧!
但是感觉还有一些不足,时间戳,数据列没有名称,性别显示是0,1,工资字段没有汇总。
下面我们一项一项解决这些问题。
注意:
ReportHeader带区和PageHeader带区的区别,ReportHeader是显示报表的头部,只显示一次,与报表的页数无关,只在报表的第一页的头部显示;
PageHeader是页头显示,无论此报表多少页,每页都会显示PageHeader带区中的部分,ReportFooter和PageFooter与其道理相同,所以我们通常将大标题和时间戳放在ReportHeader,将列名称放在PageHeader内。
每页汇总放在PageFooter,总汇总放在ReportFooter中,设计视图如图:
这里注意边框的调整,Detail带区中的Table的边框是没有上边框的,这样在列表显示时,不会因为边框重合而引起边框宽度增加。
显示效果如图所示:
下面看看汇总的实现,汇总有总计,平均值,百分比,最大,最小等等,上例中我们实现的是对工资求总和,首先添加PageFooter带区,拖拽一个XRLabel设置Text为“工资总计:
”,再拖拽一个XRLabel,点击summary属性的省略部分,会弹出如图所示部分:
这里可以设置绑定列,汇总函数类型,结果显示的字符串格式,是否忽略空值,汇总类型等。
这里的汇总类型有多种形式,有按组汇总,按页汇总,整个报表汇总。
汇总属性设置完毕,还要给这个控件绑定数据,在后台绑定其他控件的地方加上这句:
this.xrLabel3.DataBindings.Add("
其他的汇总都是一样的!
差不多大功告成了,还有一些不足就是,性别显示是0或1,我们需要显示的是男和女,还不需要通过修改数据实现,那XtraReport可以实现吗?
告诉你,是完全可以的!
使用HtmlItemCreated事件,在性别列设置他的HtmlItemCreated事件,加入下面的代码:
if(e.ContentCell.InnerText=="
0"
)
e.ContentCell.InnerText="
女"
;
elseif(e.ContentCell.InnerText=="
1"
男"
else{
"
显示如图所示:
可以了,报表终于完成了,开始打印了,哎!
?
怎么打印呢,忘了介绍了,现在我们将打印,预览,翻页等介绍一下。
在需要嵌入报表的页面的前台加入下面这句:
ReportToolbarID="
ReportToolbar1"
ReportViewer="
%#ReportViewer%>
"
>
ReportToolbar>
其中ReportViewer是需要控制的报表的ID。
这样,我们的报表就可以有打印,转化格式保存,翻页(还没有完成)的功能了。
数据如果太多了,我希望每页只显示3条数据怎么办?
下面涉及到翻页了,虽然打印工具栏里有翻页功能,但是需要在报表里设置页数才能生效。
首先声明变量:
intRecordCount=0;
//累加每页的记录数
写Detail的BeforePrint事件,写入下面的代码:
///<
///实现每页下面打印多少条记录
privatevoidDetail_BeforePrint(objectsender,System.Drawing.Printing.PrintEventArgse)
//实现每页下面打印多少条记录
RecordCount+=1;
if(RecordCount==3)//每页打条记录
Detail.PageBreak=PageBreak.AfterBand;
RecordCount=0;
else
Detail.PageBreak=PageBreak.None;
这样,就可以实现分页了,看看下面的效果:
剩下最后一步了,就是字体问题,XtraReport支持除宋体,仿宋之外的大部分字体,所以,我们要对报表控件的字体属性设置成支持的字体,否则,打印或者转化成pdf格式的文件都会将汉字转化成方格。
至此,一张简单的数据报表完成了,绘制报表还有很多技巧是在使用中不断摸索出来的。
工作愉快,共同进步。
问题:
目前存在的问题是:
1、DeveloperExpress.Net8.3.3版本不支持宋体和仿宋体字体,当汉字设置成宋体时,打印与生成pdf文件时,汉字会变成方格,生成其他格式或浏览时不会发生问题。
2、使用客户端报表设计器设计报表时,添加数据源问题,通过ODBC连接数据源时,Cache数据库不能得到数据源的表结构,无法添加数据源,所以只用Cache库就无法使用客户端报表设计器设计报表文件repx,然后通过页面调用repx报表文件的形式。
3、启动带有报表的项目时或运行时都耗内存,运行速度慢。
注:
//文中省略的使用连接数据源代码
SqlConnectionconnect=newSqlConnection();
try{
SqlCommandcommand=newSqlCommand();
SqlDataAdapterda=newSqlDataAdapter();
stringstrConn="
server=HDCC-E;
database=reportTest;
UserId=sa;
pwd=123;
connect.ConnectionString=strConn;
command.Connection=(SqlConnection)connect;
da=newSqlDataAdapter(command);
if(connect.State!
=ConnectionState.Open){
connect.Open();
DataSetds=newDataSet();
command.CommandText="
SELECT*FROMPersonInfo"
command.CommandType=CommandType.Text;
da.SelectCommand=command;
da.Fill(ds);
returnds;
catch(Exceptione){
returnnull;
finally{
if(connect.State==ConnectionState.Open){
connect.Close();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XtraReports 简单 应用