如何把repx文件转换为word文件

兄弟,打扰一下,如何把repx文件转换为word文件
最新回答
红颜乱

2024-12-03 01:01:19

  XtraReports 使用说明 一 安装 Dxperience 最新版本是 Dxperience v8.33。安装完组件库之后,Dxperience 中的控件会 自动嵌入到 vs 系统中。在创建报表等项目是并不需要添加引用,系统会自动为你添加需要 的引用。 二 创建一个简单报表 我们以一个最简单的 hello word 例子开始。 首先打开 vs2005,新建一个项目,点击项目右键添加一个新项,选择 XtraReport Class v8.3(选择 XtraReport Wizard v8.3 通过向导创建) , 点击确定,弹出提示框, 选择“是” ,则新的报表文件将添加进入 App_Code 文件夹内,如果选择“否” ,则直接添加 进入项目中,会出现不能显示设计器的情况,所以建议选择“是” 。这样一个新的报表文件 添加进来了,但是一个报表文件是不能直接显示的,是要嵌入到页面中才能显示给客户,将 一个报表文件加入到页面中其实很简单,只需要加入几句话就可以了,首先添加 DevExpress.Web 引用,然后新建一个页面,在页面的前台添加下面的引用: <%@ Register Assembly="DevExpress.XtraReports.v8.3.Web, Version=8.3.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.XtraReports.Web" TagPrefix="dxxr" %> 在form标签中加入 <dxxr:ReportViewer ID="ReportViewer" runat="server"></dxxr:ReportViewer> 可以编辑报表显示的边框,尺寸等等。 在后台加入下面的程序: protected void Page_Load(object sender, EventArgs e) { ReportViewer.Report = new XtraReport1(); } 这样报表就可以显示出来了, 但是现在我们什么也看不到, 因为报表中还没有添加任何内容。 下面我们向报表中添加内容,达到我们想要的显示效果。 在初始的设计器中只有 PageHeader、明细和页脚三个带区。 如果想要添加更多的块可以右键点击设计器的任何地方,弹出菜单,选择想要添加的带区, 除了 Group Header 以外每一个带区都只能出现在一个报表中一次。 控件: 当我们安装完 XtraReports 组件之后,在工具栏中就会自动加入报表控件组,我们常用到的 是控件是 XRLabel, XRTable。对于任何复杂报表,这些工具基本可以满足你的要求。首先我 们将 XRLabel 拖拽到 Detail 带区。在属性窗口修改 Text 属性为“helloword” ,修改 Font 属 性,将字体放大些。搞定!我们的第一个报表程序完成了,就这么简单,不需要长长的代码 和复杂的过程。从我们做的第一个简单的例子就可以看出,Dxperience 的这个报表控件特点 就是简单、易用,设计器清爽、美观。同时智能的创建向导也更加快捷使用。 三 连接数据源 上面我们只是创建非常简单的报表,对于连接数据源,创建复杂报表 XtraReports 也提 供了非常好的解决办法。下面我们看看怎么样连接数据源,显示数据信息。XtraReports 对 于 web 项目中数据源的绑定不如 winform 项目灵活。我目前知道有两种方式,一种是:是 通过项目中添加 DataSet 文件的形式,通过 DataSet 得到的数据源添加到报表的数据源中。 第二种是:通过后台编写代码实现数据绑定,如果还有其他方法,敬请赐教。 首先我们了解下第一种通过 DataSet 绑定数据源方式。 在当前项目中(最好是在报表文件所在的目录下)添加 DataSet 文件,则系统会弹出链 接数据源的向导, 选择你的数据源, 点击【下一步】——>点击【下一步】——>点击【下一步】——>默认选中『Use SQL statemens』 ,点击【下一步】——>点击【Query Builder】. 弹出上面的对话框,这里可以编写 sql 语句了,点击【ok】 ,此时数据源产生了。下面 就是要将这个 DataSet 的数据源添加到报表中去。打开报表的设计视图,在工具栏的 Data 组中选择 DataSet,将 DataSet 拖拽到设计器界面中,如图: 会弹出如图所示的界面,在 Typed dataset 中,选择刚刚创建的 DataSet1,这样刚刚创建 的 DataSet 数据源就添加到了报表文件中。此时你会发现在 Field List 窗口中多了一个 dataset11,这个就是我们刚刚添加的数据源,将这些字段拖拽到我们报表的控件上,就达到 了绑定数据源的目的, 现在我先介绍下后台代码的绑定数据源方式。 首先创建数据源,这里以 SQL Server 2005 为例,创建一个 PersonInfo 的表。 CREATE TABLE [dbo].[PersonInfo]( [id] [int] IDENTITY(1,1) NOT 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.Report = new XtraReport1(); DataSet ds = GetData(); ReportViewer.Report.DataSource = ds; } //使用ado.net连接数据源的普通代码,在此省略 protected DataSet GetData() { } 报表的数据源已经给定了, 那么就要将数据与控件对应。 在报表的代码页面加入下面的代码: public XtraReport1() { InitializeComponent(); SetReportData(); } /// <summary> /// 设置报表数据源 /// </summary> private void SetReportData() { this.xrTableCell1.DataBindings.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"); } 大功告成,让我们看看效果吧! 但是感觉还有一些不足,时间戳,数据列没有名称,性别显示是 0,1,工资字段没有汇总。 下面我们一项一项解决这些问题。 注意:ReportHeader 带区和 PageHeader 带区的区别,ReportHeader 是显示报表的头部,只 显示一次,与报表的页数无关,只在报表的第一页的头部显示;PageHeader 是页头显示, 无论此报表多少页, 每页都会显示 PageHeader 带区中的部分, ReportFooter 和 PageFooter 与 其道 理相同 ,所 以我们 通常 将大标 题和 时间戳 放在 ReportHeader,将 列名 称放 在 PageHeader 内。每页汇总放在 PageFooter,总汇总放在 ReportFooter 中,设计视图如图: 这里注意边框的调整,Detail 带区中的 Table 的边框是没有上边框的,这样在列表显示时, 不会因为边框重合而引起边框宽度增加。显示效果如图所示: 下面看看汇总的实现,汇总有总计,平均值,百分比,最大,最小等等,上例中我们实现的 是对工资求总和, 首先添加 PageFooter 带区, 拖拽一个 XRLabel 设置 Text 为 “工资总计:, ” 再拖拽一个 XRLabel,点击 summary 属性的省略部分,会弹出如图所示部分: 这里可以设置绑定列, 汇总函数类型, 结果显示的字符串格式, 是否忽略空值, 汇总类型等。 这里的汇总类型有多种形式,有按组汇总,按页汇总,整个报表汇总。 汇总属性设置完毕, 还要给这个控件绑定数据,在后台绑定其他控件的地方加上这句: this.xrLabel3.DataBindings.Add("Text", DataSource, "wage"); 其他的汇总都是一样的! 差不多大功告成了, 还有一些不足就是, 性别显示是 0 或 1, 我们需要显示的是男和女, 还不需要通过修改数据实现,那 XtraReport 可以实现吗?告诉你,是完全可以的!使用 HtmlItemCreated 事件,在性别列设置他的 HtmlItemCreated 事件,加入下面的代码: if (e.ContentCell.InnerText == "0") { e.ContentCell.InnerText = "女"; } else if (e.ContentCell.InnerText == "1") { e.ContentCell.InnerText = "男"; } else { e.ContentCell.InnerText = " "; } 显示如图所示: 可以了,报表终于完成了,开始打印了,哎!?怎么打印呢,忘了介绍了,现在我们 将打印,预览,翻页等介绍一下。 在需要嵌入报表的页面的前台加入下面这句: <dxxr:ReportToolbar ID="ReportToolbar1" runat="server" ReportViewer %>" > </dxxr:ReportToolbar> ReportViewer="<%# 注意:其中 ReportViewer 是需要控制的报表的 ID。这样,我们的报表就可以有打印,转化格式 保存,翻页(还没有完成)的功能了。 数据如果太多了, 我希望每页只显示 3 条数据怎么办?下面涉及到翻页了, 虽然打印工具栏 里有翻页功能,但是需要在报表里设置页数才能生效。首先声明变量: int RecordCount = 0; //累加每页的记录数 写 Detail 的 BeforePrint 事件,写入下面的代码: /// <summary> /// 实现每页下面打印多少条记录 /// </summary> private void Detail_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { //实现每页下面打印多少条记录 RecordCount += 1; if (RecordCount == 3) { Detail.PageBreak = PageBreak.AfterBand; //每页打条记录 RecordCount = 0; } else { Detail.PageBreak = PageBreak.None; } } 这样,就可以实现分页了,看看下面的效果: 剩下最后一步了,就是字体问题,XtraReport 支持除宋体,仿宋之外的大部分字体,所以, 我们要对报表控件的字体属性设置成支持的字体, 否则, 打印或者转化成 pdf 格式的文件都 会将汉字转化成方格。至此,一张简单的数据报表完成了,绘制报表还有很多技巧是在使用 中不断摸索出来的。工作愉快,共同进步。 问题: 问题: 目前存在的问题是: 1、Developer Express .Net 8.3.3 版本不支持宋体和仿宋体字体,当汉字设置成宋体时, 打印与生成 pdf 文件时,汉字会变成方格,生成其他格式或浏览时不会发生问题。 2、使用客户端报表设计器设计报表时,添加数据源问题,通过 ODBC 连接数据源时,Cache 数据库不能得到数据源的表结构, 无法添加数据源, 所以只用 Cache 库就无法使用客户端报 表设计器设计报表文件 repx,然后通过页面调用 repx 报表文件的形式。 3、启动带有报表的项目时或运行时都耗内存,运行速度慢。 注: //文中省略的使用ado.net连接数据源代码 SqlConnection connect = new SqlConnection(); try{ SqlCommand command = new SqlCommand(); 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(); } }
南栀北辰

2024-12-03 01:55:27

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

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