posted on 2006-09-22 10:20
云自无心水自闲 阅读(14175)
评论(1) 所属分类:
.net
在xtrareport中, 每一个报表都是xtrareport或者其子类. 打个比方说, xtrareport就好象windows forms. 同样的道理, 所有的form都form类的子类.
xtrareport中的报表类可以与数据绑定也可以不绑定. 如果要创建一个绑定数据的报表, 需要查看<数据绑定>和<绑定数据控件>这两个主题的帮助.
在创建一个报表时, 可以从已有的报表中加载样式和布局, 样式中包含了报表控件外观的属性值, 而布局包含了报表的结构信息. 另外, 还可以从其他报表系统中导入报表, 比如: access, 水晶报表等等, 如果要详细了解xtrareport的导入功能, 请参阅
主题.
报表类(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});
最后创建好的报表可以输出给用户看了// 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);
附: xtrareport的类结构层次图: