XtraReports介绍:
XtraReports是为Windows Forms和ASP.NET编程者开发的下一代报表平台,使您在很短的时间内为最终用户制作出令人出乎意料的报表。它与Microsoft Visual Studio .NET集成,XtraReports Suite允许您使用原来的开发模式创建典型的Windows Forms应用。XtraReports使用一样的代码编辑器(C#, VB.NET or J#),一样的属性Grid,一样的组件工具箱,一样的对齐工具条和所有Visual Studio IDE提供的资源。XtraReports组件可以整合于Visual Studio IDE之中,为您带来更高的动作效率,同时,对于您的应用软件和网站报表发布它具有更大的灵活性。 我认为,XtraReports从功能上来讲还不能和微软的Reporting Service相提并论,因为整个RS概念非常庞大,覆盖了整个报表的生命周期,包括了报表设计,安全,管理和运行。RS以XML为基础的RDL作为报表定义语言,具备XML天生的良好扩充性。RS的报表设计器支持文本框,线条,表,矩阵,矩形,列表,图像,子报表和图表。虽然对于Shape图形、条形码等默认不支持,但是可以通过RDL自行扩展,这是它强大的地方。但是,其最强大的功能还在于其报表元素所有的属性都支持表达式,这给报表的呈现增加了最大程度的灵活性。 但是,恰恰正因为RS太过于庞大,导致很多中小用户更倾向于选择方便快捷的报表设计工具,而不是整个体系。相对而言,XtraReports在设计器上功能也非常完善,支持的报表元素类型比较丰富,报表样式控制不错,设计器界面更加清爽和美观。和RS一样,也同时支持WinForm方式和Web方式进行报表查阅。重要的是,XtraReports开发成本非常低,即学即用,部署也非常方便。
|
特征综述 About Feature
XtraReports-学习简便,入门容易。可以直接使用或通过API连接。
产品特征综述
包括的报表组件
关于支持的报表组件后面将详细进行说明。
完全整合于Visual Studio.Net中
一种强大的,智能的报表创作向导。
直接API调用
内置预览功能和HTML视图
丰富的带区(Band)类型
丰富的数据显示方式
一个表格控件让您快速简单地在报表中创建表格,您也可以不需要它的地方撤消它
In-Place编辑
支持事件
控件重叠用感叹号标记
包括的报表组件
在此介绍创建报表过程中使用到的XtraReports的控件. 所有的控件都可以在设计时,运行时,或者通过设计器添加到报表中。
XtraReports中的所有报表对象都通过在Bands中的控件来表现. 在设计时, 报表控件可以从工具箱添加到报表中, 只有点击工具箱中需要的控件, 然后放到报表带中即可. 另一种方式是使用字段列举窗口添加控件, 这种情况下, 控件将和数据字段绑定。
如果要在运行时添加报表控件, 你只需要简单地创建一个相应类型的变量, 并通过XRControlCollection.Add方法添加到报表带中即可。所有的报表控件包括Bands都是继承自XRControl. 其中部分控件可以还作为容器, 这种情况下控件集合可以通过XRControl.Controls来获得. 如果要获取控件的容器, 可使用XRControl.Parent属性。
下面列举了XtraReports中的标准报表控件:
Class |
Description |
Subreport |
用于在报表中添加子报表. 被添加的报表需要被包含在项目中, 并设置SubReport的ReportSource属性. 子报表可用于合并报表和创建主从表. |
WinControlContainer |
用于添加Windows Forms或者第三方的控件. 此对实际上是添加的控件的封装, 并提供对Drawing方法的支持 |
XRBarCode |
用于在报表中显示条形码. 使用XRBarCode.Symbology和XRBarCode.SymbologyId来设置条形码的类型 |
XRChart |
在报表中显示图形, 使用此控件来根据一个或多个SeriesViewTypes来展示不同的数据. |
XRCheckBox |
用于在报表中展示复选框. |
XRLabel |
标签. 可以是单行的, 也可以是多行的. |
XRLine |
线条. 使用这个控件来画线. |
XRPageBreak |
换页. 如果是Band中需要换页, 那么使用控件的Band.PageBreak属性比较好. |
XRPageInfo |
显示报表页面的附加信息. 可以显示页码, 日期或者其他信息. |
XRPanel |
用于包含其他控件的控件. 可以使用此控件来进行控件的分组. |
XRPictureBox |
在报表中显示一个图片 |
XRRichText |
显示一个控件, 用于显示,输入,修改格式化的文本. 可以用XRRichText.LoadFile从文件中加载文本. |
XRTable |
表格 |
XRTableCell |
表格单元. 与XRControl.Text绑定 |
XRTableRow |
表格中的行. 通过不需要用到此控件, 直接操作表格单元更普遍. |
XRZipCode |
邮政编码 |
XtraReports的报表编辑器
XtraReports的设计器可以作为给终端用户使用的独立的报表设计器, 也就是说用户可以自己编辑,预览,甚至创建报表。这个设计器和Visual Studio的集成开发环境很象, 可以定制外观, 满足用户的需要。甚至, 你可以自己创建报表设计器, 因为在XtraReport中设计器是一个分开独立的控件。
先介绍一下设计器的组成元件. 报表设计器主要是用于使用户可以编辑报表。标准的设计器是使用XRDesignFormEx类来展示的, 这个类提供了编辑和创建报表的主要功能。
下图是一个标准的报表设计器:
这个Form里包含了不同的元件:报表在XRDesignPanel对象中被编辑,其他工具栏和停靠面板由XRDesignBarManager和XRDesignDockManager控制,所有的这些控件都可以通过设计Form的XRDesignFormExBase.DesignPanel, XRDesignFormEx.DesignBarManager和XRDesignFormEx.DesignDockManager属性来操作。
下面列举了设计器中使用的元件接口:
Element |
Description |
Design Panel |
这是报表设计器的主要元件. 它展示了一个面板用于创建一个新的报表或者编辑原有的报表. 它显示报表带并控制报表带中控件的归属, 并可以移动, 缩放, 复制, 粘贴这些控件, 另外还可以在控件上绑定数据, 或者进行其他的操作. 而且可以预览报表效果. |
Main Menu |
展示报表设计器的主菜单. 包含了一系列的项目和子项目, 用于为用户提供相关操作. 通常, 它复制所有的ToolBar按钮, 格式化按钮以及布局按钮. |
Main Toolbar |
展示报表设计器的ToolBar. 包含创建报表, 保存装载报表布局, 剪裁,复制,粘贴等按钮, 以及撤销, 重做等操作. |
Formatting Toolbar |
展示报表设计器的格式化Toolbar. 包含一些缺省的操作文本的按钮. |
Layout Toolbar |
展示报表设计器的布局Toolbar. 包含缩放, 移动一组控件位置的按钮. |
Status Bar |
在报表设计器底部展示StatusBar. 通常用于显示报表编辑操作过程中的特殊信息. |
Toolbox |
展示报表设计器的控件工具箱. 包含所有报表控件, 可以拖放新的控件到报表区中. 可以添加自定义控件到工具箱中. |
Report Explorer |
展示报表设计器的Explorer. 它显示了报表树状结构, 使用它可以很方便地浏览整个报表. |
Field List |
展示了报表设计器的树状字段列表. 显示了数据源的树状结构. 用于将数据绑定到报表. |
Property Grid |
展示报表设计器的属性容器. 可以修改报表元件的属性. |
激活报表设计器:尽管报表设计器是XRDesignFromEx的实例,但一般不需要手工创建此对象,通常使用以下代码:
// Create a new report.
XtraReport1 report = new XtraReport1();
// Invoke the End-User Designer and load the report into it.
report.ShowDesigner();
// Invoke the End-User Designer and load the report into it, modally.
report.ShowDesignerDialog();
报表带区
一个普通的XtraReport报表一般包含数个包含报表控件的带区,在这里介绍一个XtraReports中的几种不同类型的带区,他们都有一些什么用途,又是如何添加、编辑、删除的。
在把报表添加到应用之后, 缺省的样子如下图所示. 可以看到, 报表被初始化分为3个基本的带区(页头, 明细, 和页脚), 这些带区中可以添加不同的报表控件。
每一种带区指明了控件在报表中是怎样定位和被打印的, 即确定了打印的顺序和次数。注意, 有些<band strips>包含了带是如何被打印的信息, 比如: PageHeader和PageFooter就说明了是每一页都有这一带区的。
在创建报表时, 可以添加或者删除任意的带区。在XtraReports中有很多不同类型的带区, 每一个都是<Band>的子类. 列举如下:
Bands类 |
描述 |
TopMarginBand |
用于放置出现在报表每页页头最上面的控件 |
ReportHeaderBand |
用于放置出现在报表开头的控件 |
PageHeaderBand |
用于放置出现在报表页上面, 仅次于TopMarginBand位置的控件. 主要是用于放置需要分页的表格的头 |
GroupHeaderBand |
用于放置明细带中分组记录的头部控件 |
DetailBand |
用于显示绑定数据的每条记录 |
DetailReportBand |
用于创建主从报表. 主从关系由从报表的XtraReportsBase.DataMember属性指定 |
GroupFooterBand |
用于放置明细带中分组记录下方的控件 |
PageFooterBand |
用于放置报表页下方的控件 |
ReportFooterBand |
用于放置报表结束的控件 |
BottomMarginBand |
用于放置报表每页最下方的控件 |
报表的预览显示的不是带本身, 而是<PrintingSystem>的输出. PageHeaderBand, PageFooterBand, TopMarginBand和BottomMarginBand在报表预览的每一页都有输出. ReportHeaderBand和ReportFooterBand类只显示一次. GroupHeaderBand和GroupFooterBand出现在每个记录组中.
如何动态传递参数到XtraReports
以下3种方法是从网上摘录的方式,自己还没来得及进行试验。前两种方法和WinForm一样,可以传递参数、数组、实体对象、DataTable等。
1. 采用构造函数
具体用法:
在Report中
public partial class XtraReport1 : DevExpress.XtraReports.UI.XtraReport
{
private int test1;
public Form1(int test1)
{
this.test1 = test1;
InitializeComponent();
}
}
调用Report
int test1 = 1;
XtraReport1 report = new XtraReport1(test1);
report.Show();
2.采用属性
具体用法:
在Report中
public partial class XtraReport1 : DevExpress.XtraReports.UI.XtraReport
{
public Form1()
{
InitializeComponent();
}
private int test1;
public int Test1
{
set { test1 = value; }
get { return test1; }
}
}
调用Report
XtraReport1 report = new XtraReport1();
report .Test1 = 1;
report.Show();
3.采用DataSet传递参数
在报表设计界面中,从工具栏数据中拉入DataSet到界面中,选择非类型化数据集,然后给拉入的DataSet添加Table和Column。报表界面的Field List中会自动加入刚添加进去的表和栏目,然后在拉动Field List栏中的Column到报表中,设计好后。在报表的代码中:
private void Detail_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
this.DataSource = ds.Table[0];
}
创建报表基本方法
在XtraReport中, 每一个报表都是XtraReport或者其子类。打个比方说, XtraReport就好象Windows Forms. 同样的道理, 所有的form都Form类的子类。
XtraReport中的报表类可以与数据绑定也可以不绑定。如果要创建一个绑定数据的报表, 需要查看<数据绑定>和<绑定数据控件>这两个主题的帮助。
在创建一个报表时, 可以从已有的报表中加载样式和布局, 样式中包含了报表控件外观的属性值, 而布局包含了报表的结构信息。另外, 还可以从其他报表系统中导入报表, 比如: Access, 水晶报表等等, 如果要详细了解XtraReport的导入功能, 请参阅<Importing Overview>主题。
报表类(XtraReport的子类)创建后, 就可以生成其实例。需要注意的是, XtraReport对象可以在Windows Forms中使用也可以在Asp.net中使用。在Windows应用中使用报表, 通常需要维护报表的<Printing System>, 这个对象提供了报表的输出功能。
创建报表有两种方式, 一种是简单地添加一个"模板"报表, 一种是通过报表向导来创建报表。在报表添加到项目后, 报表设计器提供了大量的设计时元素来加快简化报表的创建。XtraReport工具箱包含了所有的控件, Report Navigator可以浏览整个报表, Field List可以拖放数据字段来创建与数据绑定的报表控件。
XtraReport的所有报表都是由<Report Band>和<Report Control>组成的。
public class XtraReport1 : DevExpress.XtraReports.UI.XtraReport
{
private DevExpress.XtraReports.UI.DetailBand Detail;
private DevExpress.XtraReports.UI.PageHeaderBand PageHeader;
private DevExpress.XtraReports.UI.PageFooterBand PageFooter;
private DevExpress.XtraReports.UI.XRLabel xrLabel1;
private DevExpress.XtraReports.UI.XRLabel xrLabel2;
private System.ComponentModel.Container components = null;
public XtraReport1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
//
然后开始创建报表的结构, 首先在XtraReportBase.Bands属性中添加Bands, 然后在相应的Bands的XRControl.Controls属性中添加控件. 报表带和控件的添加方法一般是这样的
// Add Detail, PageHeader and PageFooter bands to the report's collection of bands.
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {this.Detail, this.PageHeader, this.PageFooter});
// Add two XRLabel controls to the Detail band.
this.Detail.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {this.xrLabel1, this.xrLabel2});
最后创建好的报表可以输出给用户看了
// Create a report.
XtraReport1 report = new XtraReport1();
// Create the report's document so it can then be previewed, printed or exported.
// NOTE: Usually you don't need to call this method as it's automatically called by all of the following methods.
// See the corresponding member topic to find out when it needs to be called.
report.CreateDocument();
// Show the form with the report's print preview.
report.ShowPreview();
// Print the report in a dialog and "silent" mode.
report.PrintDialog();
report.Print();
// Open the report in the End-User designer
report.RunDesigner();
// Export the report.
report.CreateHtmlDocument("report.html");
report.CreatePdfDocument("report.pdf");
report.CreateImage("report.jpg", System.Drawing.Imaging.ImageFormat.Gif);
XtraReports简单使用的一个例子
1)建立工程文件;
2)在工程里面添加新项,名称XtraReport2.cs:
3) 在打印调用主界面 引用
using DevExpress.XtraReports.UI;
using DevExpress.XtraPrinting.Localization ;
4)填充数据,代码如下:
private void simpleButton1_Click(object sender, System.EventArgs e)
{
XtraReport1 xrpt1=new XtraReport1(GetTempDataSet(),"单位","标题");
PreviewLocalizer.Active = new ChineaseReportLocalizer();
xrpt1.ShowPreviewDialog();
}
private DataSet GetTempDataSet()
{
DataSet ds=new DataSet();
DataTable dt=new DataTable("tempTable");
dt.Columns.Add("Col1",Type.GetType("System.String"));
dt.Columns.Add("Col2",Type.GetType("System.String"));
dt.Columns.Add("Col3",Type.GetType("System.String"));
dt.Columns.Add("Col4",Type.GetType("System.String"));
dt.Columns.Add("Col5",Type.GetType("System.String"));
dt.Columns.Add("Col6",Type.GetType("System.String"));
dt.Columns.Add("Col7",Type.GetType("System.String"));
DataRow tempRow;
for (int i=0;i<7;i++)//i:Row
{
tempRow=dt.NewRow();
tempRow[0]=i.ToString();
tempRow[1]=i.ToString();
tempRow[2]=i.ToString();
tempRow[3]=i.ToString();
tempRow[4]=i.ToString();
tempRow[5]=i.ToString();
tempRow=i.ToString();
dt.Rows.Add(tempRow);
}
ds.Tables.Add(dt);
return ds;
}
这个里面 simpleButton1_Click 是打印 键的click事件
5)在XtraReport1.cs 里面的图形界面里面进行属性的相关设置,和增加相关的打印控件,具体操作如下图:
6)增加相关代码:
public XtraReport1(DataSet dset,string unitName,string title)//构造函数重载
{
InitializeComponent();
SetDataBind(dset,unitName,title);
}
private void SetDataBind(DataSet dataset,string unitname,string title)
{
DataSource=dataset;
this.xrTableCell3.Text=unitname;
this.xrTableCell9.Text=title;
this.xrTableCell4.DataBindings.Add("Text", DataSource, "Col1");
this.xrTableCell5.DataBindings.Add("Text", DataSource, "Col2");
}
7)注意有一个本地化类 ChineaseReportLocalizer,是用来对控件进行汉化的。
using System;
using System.Data;
using DevExpress.XtraPrinting.Localization ;
using DevExpress.XtraEditors.ViewInfo;
namespace ReportView
{
public class ChineaseReportLocalizer : DevExpress.XtraPrinting.Localization.PreviewLocalizer
{
public override string Language { get { return "简体中文"; }}
public override string GetLocalizedString(PreviewStringId id)
{
string ret = "";
switch(id)
{
case PreviewStringId.PreviewForm_Caption : return "统计报表预览";
case PreviewStringId.MenuItem_File : return "文件";
case PreviewStringId.MenuItem_PageSetup : return "页面设置";
case PreviewStringId.MenuItem_PrintDirect : return "打印设置
";
case PreviewStringId.MenuItem_Print : return "打印";
case PreviewStringId.MenuItem_Export : return "导出";
case PreviewStringId.MenuItem_PdfDocument : return "Pdf文档";
case PreviewStringId.MenuItem_RtfDocument : return "Rtf文档";
case PreviewStringId.MenuItem_TxtDocument : return "Txt文档";
case PreviewStringId.MenuItem_XlsDocument : return "Xls文档";
case PreviewStringId.MenuItem_HtmDocument : return "Htm文档";
case PreviewStringId.MenuItem_GraphicDocument : return "Graphic文档";
case PreviewStringId.MenuItem_CsvDocument : return "Csv文档";
case PreviewStringId.MenuItem_MhtDocument : return "Mht文档";
case PreviewStringId.MenuItem_Send : return "发送";
case PreviewStringId.MenuItem_Exit : return "退出";
case PreviewStringId.MenuItem_View : return "查看";
case PreviewStringId.MenuItem_ViewToolbar : return "工具栏";
case PreviewStringId.MenuItem_ViewStatusbar : return "状态条";
case PreviewStringId.MenuItem_Background : return "背景";
case PreviewStringId.MenuItem_BackgrColor : return "颜色";
case PreviewStringId.MenuItem_Watermark : return "水印";
case PreviewStringId.Msg_IncorrectPageRange : return "设置的页边距不正确";
case PreviewStringId.TB_TTip_PageSetup : return "页面设置";
case PreviewStringId.TB_TTip_Print : return "打印";
case PreviewStringId.TB_TTip_Export : return "导出";
case PreviewStringId.TB_TTip_Close : return "退出";
case PreviewStringId.TB_TTip_Send : return "发送";
default:
ret = "";
break;
}
return ret;
}
}
}
调用 PreviewLocalizer.Active = new ChineaseReportLocalizer(); //实现打印本地化
源代码下载:
http://www.cnblogs.com/Files/jhtchina/ReportView.rar
以上是C/S 结构的源码打印
http://www.cnblogs.com/Files/jhtchina/WebPrint源码.rar
压缩Word文件里面有 使用说明。
是WebForm 下面的源码打印
附1: DxPerience控件汉化的标准方法(重载GetLocalizedString方法)
using DevExpress.XtraEditors.Controls;
namespace Oceansoft.LOGERP.Common
{
/// <summary>
/// =====================================
/// 作用: XtraEditors的简体中文本地化类
/// =====================================
/// 使用方法:
/// using Oceansoft.LOGERPDEMO.Common;
/// private void Form1_Load(object sender, System.EventArgs e)
/// {
/// XtraEditorsSimpChineseLocalizer chnLocalizer = new XtraEditorsSimpChineseLocalizer();
/// Localizer.Active = chnLocalizer;
/// }
/// </summary>
public class XtraEditorsSimpChineseLocalizer : Localizer
{
/// <summary>
///
/// </summary>
public override string Language
{
get
{
return "简体中文";
}
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public override string GetLocalizedString(StringId id)
{
switch (id)
{
case StringId.CalcButtonBack:
return "Back";
case StringId.CalcButtonC:
return "C";
case StringId.CalcButtonCE:
return "CE";
case StringId.CalcButtonMC:
return "MC";
case StringId.CalcButtonMR:
return "MR";
case StringId.CalcButtonMS:
return "MS";
case StringId.CalcButtonMx:
return "M+";
case StringId.CalcButtonSqrt:
return "sqrt";
case StringId.CalcError:
return "计算错误";
case StringId.Cancel:
return "取消(&C)";
case StringId.CaptionError:
return "错误";
case StringId.CheckChecked:
return "选中";
case StringId.CheckIndeterminate:
return "未选择";
case StringId.CheckUnchecked:
return "未选中";
case StringId.ColorTabCustom:
return "自定义";
case StringId.ColorTabSystem:
return "系统";
case StringId.ColorTabWeb:
return "网络";
case StringId.DataEmpty:
return "没有图片";
case StringId.DateEditClear:
return "清除";
case StringId.DateEditToday:
return "今天";
case StringId.ImagePopupEmpty:
return "(空的)";
case StringId.ImagePopupPicture:
return "(图片)";
case StringId.InvalidValueText:
return "无效的值";
case StringId.MaskBoxValidateError:
return "The entered value is incomplete. Do you want to correct it?/r/n/r/nYes - return to the editor and correct the value./r/nNo - leave the value as is./r/nCancel - reset to the previous value./r/n ";
case StringId.NavigatorAppendButtonHint:
return "附加";
case StringId.NavigatorCancelEditButtonHint:
return "取消编辑";
case StringId.NavigatorEditButtonHint:
return "编辑";
case StringId.NavigatorEndEditButtonHint:
return "结束编辑";
case StringId.NavigatorFirstButtonHint:
return "第一条(&F)";
case StringId.NavigatorLastButtonHint:
return "最后一条(&L)";
case StringId.NavigatorNextButtonHint:
return "下一条(&N)";
case StringId.NavigatorNextPageButtonHint:
return "下一页";
case StringId.NavigatorPreviousButtonHint:
return "上一条(&P)";
case StringId.NavigatorPreviousPageButtonHint:
return "上一页";
case StringId.NavigatorRemoveButtonHint:
return "删除(&D)";
case StringId.NavigatorTextStringFormat:
return "{0}/{1}条";
case StringId.OK:
return "确定(&O)";
case StringId.PictureEditMenuCopy:
return "复制(&C)";
case StringId.PictureEditMenuCut:
return "剪切(&T)";
case StringId.PictureEditMenuDelete:
return "删除(&D)";
case StringId.PictureEditMenuLoad:
return "载入(&L)";
case StringId.PictureEditMenuPaste:
return "粘贴(&P)";
case StringId.PictureEditMenuSave:
return "保存(&S)";
case StringId.PictureEditOpenFileError:
return "错误的图片文件格式";
case StringId.PictureEditOpenFileErrorCaption:
return "打开失败";
case StringId.PictureEditOpenFileFilter:
return "BMP (*.bmp)|*.bmp|JPEG (*.jpg;*.jpeg;*.jpe;*.jfif)|*.jpg;*.jpeg;*.jpe;*.jfif|GIF (*.gif)|*.gif|TIFF (*.tif;*.tiff)|*.tif;*.tiff|PNG (*.png)|*.png|图标 (*.ico)|*.ico|所有图片文件|*.bmp;*.gif;*.jpg;*.jpeg;*.jpe;*.jfif;*.ico;*.png;*.tif;*.tiff|所有文件|*.*";
case StringId.PictureEditOpenFileTitle:
return "打开";
case StringId.PictureEditSaveFileFilter:
return "BMP (*.bmp)|*.bmp|GIF (*.gif)|*.gif|JPEG (*.jpg)|*.jpg";
case StringId.PictureEditSaveFileTitle:
return "另存为";
case StringId.TabHeaderButtonClose:
return "关闭(&C)";
case StringId.TabHeaderButtonNext:
return "下一页(&N)";
case StringId.TabHeaderButtonPrev:
return "上一页(&P)";
case StringId.TextEditMenuCopy:
return "复制(&C)";
case StringId.TextEditMenuCut:
return "剪切(&T)";
case StringId.TextEditMenuDelete:
return "删除(&D)";
case StringId.TextEditMenuPaste:
return "粘贴(&P)";
case StringId.TextEditMenuSelectAll:
return "全选(&A)";
case StringId.TextEditMenuUndo:
return "撤销(&U)";
case StringId.UnknownPictureFormat:
return "未知的图片格式";
case StringId.XtraMessageBoxAbortButtonText:
return "放弃(&A)";
case StringId.XtraMessageBoxCancelButtonText:
return "取消(&C)";
case StringId.XtraMessageBoxIgnoreButtonText:
return "忽略(&I)";
case StringId.XtraMessageBoxNoButtonText:
return "否(&N)";
case StringId.XtraMessageBoxOkButtonText:
return "确定(&O)";
case StringId.XtraMessageBoxRetryButtonText:
return "重试(&R)";
case StringId.XtraMessageBoxYesButtonText:
return "是(&Y)";
}
return "";
}
}
}
using System;
using DevExpress.XtraGrid.Localization;
namespace SZHeritage.Common
{
/// <summary>
/// =====================================
/// 作用: XtraEditors的简体中文本地化类
/// 作者:
/// 日期: 2005-08-12
/// </summary>
public class XtraGridSimpChineseLocalizer:GridLocalizer
{
public XtraGridSimpChineseLocalizer()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public override string Language
{
get
{
return "简体中文";
}
}
public override string GetLocalizedString(GridStringId id)
{
switch(id)
{
case GridStringId.MenuColumnBestFit:
return "适合列宽度";
case GridStringId.MenuColumnBestFitAllColumns:
return "适合所有列宽度";
case GridStringId.MenuColumnClearFilter:
return "取消筛选";
case GridStringId.MenuColumnColumnCustomization:
return "选择显示列";
case GridStringId.MenuColumnSortAscending:
return "升序排列";
case GridStringId.MenuColumnSortDescending:
return "降序排列";
case GridStringId.MenuColumnGroup:
return "此列分组";
case GridStringId.MenuColumnGroupBox:
return "自定义分组";
case GridStringId.MenuGroupPanelFullCollapse:
return "折叠";
case GridStringId.MenuGroupPanelFullExpand:
return "展开";
case GridStringId.MenuGroupPanelClearGrouping:
return "清除分组";
case GridStringId.GridGroupPanelText:
return "拖动列到此处实现,实现按此列分组";
case GridStringId.CustomizationCaption:
return "自定义";
}
return "";
}
}
}
附2:DxPerience控件汉化方法2
download This is for Visual Studio 2005
使用方法:
在项目中加入附件中DevExpress.LocalizationCHS.dll引用
在MDI的MainForm加入:using DevExpress.LocalizationCHS;
在MDI MainForm 的FormLoad事件中加入:
DevExpressXtraBarsLocalizationCHS XtraBarsLocalizer = new DevExpressXtraBarsLocalizationCHS();
DevExpress.XtraBars.Localization.BarLocalizer.Active = XtraBarsLocalizer;
DevExpressXtraChartsLocalizationCHS XtraChartsLocalizer = new DevExpressXtraChartsLocalizationCHS();
DevExpress.XtraCharts.Localization.ChartLocalizer.Active = XtraChartsLocalizer;
DevExpressXtraEditorsLocalizationCHS XtraEditorsLocalizer = new DevExpressXtraEditorsLocalizationCHS();
DevExpress.XtraEditors.Controls.Localizer.Active = XtraEditorsLocalizer;
DevExpressXtraGridLocalizationCHS XtraGridLocalizer = new DevExpressXtraGridLocalizationCHS();
DevExpress.XtraGrid.Localization.GridLocalizer.Active = XtraGridLocalizer;
DevExpressXtraLayoutLocalizationCHS XtraLayoutLocalizer = new DevExpressXtraLayoutLocalizationCHS();
DevExpress.XtraLayout.Localization.LayoutLocalizer.Active = XtraLayoutLocalizer;
DevExpressXtraNavBarLocalizationCHS XtraNavBarLocalizer = new DevExpressXtraNavBarLocalizationCHS();
DevExpress.XtraNavBar.NavBarLocalizer.Active = XtraNavBarLocalizer;
DevExpressXtraPivotGridLocalizationCHS XtraPivotGridLocalizer = new DevExpressXtraPivotGridLocalizationCHS();
DevExpress.XtraPivotGrid.Localization.PivotGridLocalizer.Active = XtraPivotGridLocalizer;
DevExpressXtraPrintingLocalizationCHS XtraPrintingLocalizer = new DevExpressXtraPrintingLocalizationCHS();
DevExpress.XtraPrinting.Localization.PreviewLocalizer.Active = XtraPrintingLocalizer;
DevExpressXtraReportsLocalizationCHS XtraReportsLocalizer = new DevExpressXtraReportsLocalizationCHS();
DevExpress.XtraReports.Localization.ReportLocalizer.Active = XtraReportsLocalizer;
DevExpressXtraRichTextEditLocalizationCHS XtraRichTextEditLocalizer = new DevExpressXtraRichTextEditLocalizationCHS();
DevExpress.XtraRichTextEdit.Localization.XtraRichTextEditLocalizer.Active = XtraRichTextEditLocalizer;
DevExpressXtraSchedulerLocalizationCHS XtraSchedulerLocalizer = new DevExpressXtraSchedulerLocalizationCHS();
DevExpress.XtraScheduler.Localization.SchedulerLocalizer.Active = XtraSchedulerLocalizer;
DevExpressXtraSpellCheckerLocalizationCHS XtraSpellCheckerLocalizer = new DevExpressXtraSpellCheckerLocalizationCHS();
DevExpress.XtraSpellChecker.Localization.SpellCheckerLocalizer.Active = XtraSpellCheckerLocalizer;
DevExpressXtraTreeListLocalizationCHS XtraTreeListLocalizer = new DevExpressXtraTreeListLocalizationCHS();
DevExpress.XtraTreeList.Localization.TreeListLocalizer.Active = XtraTreeListLocalizer;
DevExpressXtraVerticalGridLocalizationCHS XtraVerticalGridLocalizer = new DevExpressXtraVerticalGridLocalizationCHS();
DevExpress.XtraVerticalGrid.Localization.VGridLocalizer.Active = XtraVerticalGridLocalizer;
注:若在项目中没有用到相关控件,则不需要创建类的实例。例如:没有使用到XtraScheduler控件就不需要
DevExpressXtraSchedulerLocalizationCHS XtraSchedulerLocalizer = new DevExpressXtraSchedulerLocalizationCHS();
DevExpress.XtraScheduler.Localization.SchedulerLocalizer.Active = XtraSchedulerLocalizer;