Dxperience XtraReports简介

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编辑

   

  • 事件支持

   

  • 控件重叠用感叹号标记

   

   

   

包括的报表组件

  • Subreport
  • XRBarCode
  • XRCheckBox
  • XRControl
  • XRLabel
  • XRLine
  • XRPageBreak
  • XRPageInfo
  • XRPanel
  • XRPictureBox
  • XRRichTextBox
  • XRTable
  • XRZipCode
  • WinControlContainer  

关于支持的报表组件后面将详细进行说明。

   

完全整合于Visual Studio.Net中

  • 报表设计工具完全整合于Visual Studio.Net中 - 如果您对VS IDE有所了解的话,您可以很容易得掌握该报表设计工具。
  • 它包括专业的界面处理器 - 导航窗口,字段列表,状态栏和滑动条 - 令使用更为方便。
  • 直接发布在您的.Net代码之中(这样您无需激活外部文件)
  • 和使用任何Windows应用程序一样的方法来操作你的数据库文件。
    例如,在你的报表上从VS.Net服务器上拖动和撤消想要修改的数据表格。
  • 支持VS.Net命令菜单和工具条。
  • 你可以直接从Windows窗体中复制控件/组件到报表设计中心中。

   

一种强大的,智能的报表创作向导。

  • XtraReports套件包括一个强大的报表创造向导,它节约了你在报表设计中的创作到定制过程的时间。您只需运行向导就可以得到您想要的报表。
  • 它的强大的功能设置使您可以为报表指定详细的数据源、采用特定字段进行分组、创作摘要等等。而且还包括能从你的报表中选择标准的报表版面设计。

   

直接API调用

  • 我们尽最大的努力,令您可以通过您的代码来调用XtraReports。例如,你能在用户设计器结束时仅仅使用少量的代码命令(C#/VB.Net),便可以制作,打印,显示,输出或启动编辑您的报表可预先确定多种标号类型。

   

  • 您可以使用XtraReports来打印邮件标签,滞销物,商业卡,徽章和任何类型的标签。我们为您提供了专门的向导功能,在向导中包含了当前最流行的标签类型-包括AOne, Herma, Zweckfrom和很多其他标准标签(总共超过1500种)。

   

  • 需要注意的是,如果你对标签向导创造的标签不满意,你也可以修订部分标签选项来获取你想要的标签。

   

内置预览功能和HTML视图

  • 如果您要在打印预览窗口或者一个HTML页面中查看您的报表样式,您无需运行整个应用程序。仅需单击Preview或HTML键就直接进入内置的报表预览窗口或HTML视图。

   

丰富的带区(Band)类型

  • 内置有大量的可用报表带区类型(总共9种)-详细带区,聚合页脚,聚合首部,底部页边空白,顶部页边空白,报表页脚,报表首部,页面页脚,页面首部-这意味着你可以在任何页面的任何部分毫不费力地控制其显示样式。

   

丰富的数据显示方式

  • 包含了原有的12种XtraReport控件:BarCode, CheckBox, Label, Line, PageBreak, PageInfo, Panel, PictureBox, RichTextBox, Table, ZipCode, and SubReport. XtraReports还允许你在一份报表中同时引用第三方控件(图表,网格等等)- 就像它们出现在Windows®系统的窗体中的情形一样。
  • 提供了对Developer Express控件的高级支持。您只需先撤消报表上的XtraGrid或XtraTreeList控件,然后进行自定义,之后它便会按您定义的样式保存在XtraPrinting控件中。
  • 基于XtraReports控件,您可以非常方便的创作您自己的控件。原有控件的风格将被完全地继承下来,令您可以更方便地制作控件的外观。
  • 一个表格控制系统可以令你在报表中快速和简便地创建表格,您也可以在不需要它的地方撤消它。

   

一个表格控件让您快速简单地在报表中创建表格,您也可以不需要它的地方撤消它

  • 一般而言,当您创建报表后,您需要花费很多精力来排列行或者控件。为了创建列表报表的样式,您不得不处理行和控件的形状,而这些与表格并无关联,因此只能撤销掉XtraReports控件,而没有其他选择办法。甚至在你完成了所有这些之后,不可避免地有人会叫你"请在左边添加更多列",这时你不得不全部重新开始。而使用XtraReports表格控件就不会发生这些情况了,因为它会带给你类似于在ASP.Net中选择HTML表格一样的方式……是的,就那样,使用我们的表格控件,您无须再进行重新位置定位了。

   

In-Place编辑

  • MS Visual Studio 的属性窗口对输入文本是不方便的。这就是为什么XtraReports要给予您利用In-Place来编辑来改变文本框中文本特性的功能,该功能包含了丰富文本框和表格单元。双击这些控制键中的任何一个就可以激活In-Place编辑。

   

支持事件

  • 灵活的事件支持允许你创建报表,带区甚至控件级别的事件绑定,这样使你充分地控制报表。例如,你可以通过事件改变控件的绘制方式。
  • 在安装程序的CustomDraw实例中向你展示了怎样在XtraReports中用控制事件来执行一个在重叠控件上的标签。

   

控件重叠用感叹号标记

  • 转向设计时间的ShowHtmlWarning可用来查看重叠控件的标识-就像VisualStudio.NET上标准的ASP.Net内的设计中心一样-确保你的XtraReports的产生同时每一个控制被适当地布置和具有可见性。

   

包括的报表组件

在此介绍创建报表过程中使用到的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();

                tempRowDevil=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;

   

 
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页