当前位置: 代码网 > it编程>编程语言>Asp.net > .Net报表开发控件XtraReport介绍

.Net报表开发控件XtraReport介绍

2024年05月15日 Asp.net 我要评论
一、概述在xtrareport中,每一个报表都是xtrareport或者其子类。xtrareport中的报表类可以与数据绑定也可以不绑定。在创建一个报表时,可以从已有的报表中加载样式和布局,样式中包

一、概述

在xtrareport中,每一个报表都是xtrareport或者其子类。

xtrareport中的报表类可以与数据绑定也可以不绑定。

在创建一个报表时,可以从已有的报表中加载样式和布局,样式中包含了报表控件外观的属性值,而布局包含了报表的结构信息。另外,还可以从其他报表系统中导入报表,比如:access,水晶报表等等。

报表类(xtrareport的子类)创建后,就可以生成其实例。需要注意的是,xtrareport对象可以在windows forms中使用也可以在asp.net中使用。在windows应用中使用报表,通常需要维护报表的,这个对象提供了报表的输出功能。

创建报表有两种方式,一种是简单地添加一个"模板"报表,一种是通过报表向导来创建报表。

在报表添加到项目后,报表设计器提供了大量的设计时元素来加快简化报表的创建。xtrareport工具箱包含了所有的控件。

report navigator可以浏览整个报表,feild list可以拖放数据字段来创建与数据绑定的报表控件。

xtrareport的所有报表都是由和组成的。

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 });

可以给报表传递参数:

xtrareport1 report = new xtrareport1();  
report.parameters["yourparameter1"].value = firstvalue;  
report.parameters["yourparameter2"].value = secondvalue;

报表内使用参数:

report.filterstring = "[categoryid] = [parameters.yourparameter1]";

最后创建好的报表可以输出给用户看了

// 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);

二、实例展示

1、报表设计

在报表属性中,设置默认font为微软雅黑,设置language为默认(注意:不能设置为中文,否则导出pdf中文乱码)。

2、报表后台代码

绑定到list类型的绑定方法,设置报表上的对象的xrbinging中datasource参数为null。

从报表的datamember 需要设置,否则从报表只显示一条记录。

同时“计算”字段的表达式的使用。

public partial class myreport : devexpress.xtrareports.ui.xtrareport
{
    public myreport()
    {
        initializecomponent();

        this.xrlabel6.databindings.add("text", null, "fileno");
        this.xrlabel7.databindings.add("text", null, "applytime", "{0:yyyy-mm-dd}");

        calculatedfield calculatedfield1 = new calculatedfield
        {
            expression = "iif([inspectitms.inspectresult]==1,'合格','不合格' )",
            name = "calculatedfield1"
        };
        calculatedfield calculatedfield2 = new calculatedfield
        {
            expression = "[reviewresult]=='1'",
            name = "calculatedfield2"
        };

        this.calculatedfields.addrange(new devexpress.xtrareports.ui.calculatedfield[] { calculatedfield1, calculatedfield2});
        
        detailreport.datamember = "inspectitms";
        this.xrtablecell5.databindings.add("text", null, "inspectitms.inspectitem");
        this.xrtablecell6.databindings.add("text", null, "calculatedfield1");
        this.xrcheckbox1.databindings.add("checked", null, "calculatedfield2");

    }
}

3、调用报表

list list = new list<myentity> { entity };
myreport myreport = new myreport(); //报表实例
myreport.datasource = list;//绑定报表的数据源
myreport.showpreview();

到此这篇关于.net报表开发控件xtrareport的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com