您好,登录后才能下订单哦!
先写一个Dev报表的基础教程,也算是给自己看的,防止忘记。
感谢同事的帮忙,没有你们,我也学不到那么多Dev报表的技术细节。
还有,最近发现一个网站http://www.devexpresscn.com/
Dev控件中文网,好像是正版授权的,在这个网站上,有一些基础教程,可以作为学习资料
新建一个ASP.NET空Web应用程序

添加一个叫WebFormForReport的页面

首先拖出两个控件,ReportToolBar和ReportViewer

将ReportViewer绑定到ReportToolBar的 Report Viewer上

创建一个叫DataSetForReport的数据集

添加两个表Mastertable 和ClidrenTable,设置Mastertable的ID为主键,ClidrenTable的ID和ClidrenID为主键



右键单击空白区域添加关系


添加一个叫XtraReport1的报表

将ReportViewer的Report设为XtraReport1

打开XtraReport1的设计界面,点击左上角的按钮,将数据源设为DataSetForReport1

右键点击插入Datail Report

右键点击DetailReport,依次插入ReportHeader,GroupHeader1和Detail1

拖入XRLabel放入ReportHeader中

摆成下列样式

为label设置text和绑定数据


将XRTable拖入GroupHeader1中,并修改背景颜色和文本信息

将XRTable拖入Detail1中,并绑定数据(注意:一定要通过主表选项中的关联子表来绑定,否则数据显示会出错)
 
添加统计:
添加一个Label,右键点击Summary,选择要统计的列,统计方式和显示的格式
(注意:这里同样要选择主表选项中的关联子表来绑定)


统计页数:
添加一个XRPageInfo即可

最后记得要设置DetailReport的PageBreak属性为AfterBand,这样数据才会分页显示

右键点击查看代码
为数据源添加数据
public XtraReport1()
{
InitializeComponent();
//全部清空
this.dataSetForReport1.Clear();
//绑定MasterTable
DataBindMaster();
//绑定DataBindClidren
DataBindClidren();
}
#region DataBindMaster
private voidDataBindMaster()
{
//清空MasterTable
this.dataSetForReport1.MasterTable.Clear();
DataTable dt = newDataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
dt.Columns.Add("Password");
//循环添加数据
for (int i = 0; i< 5; i++)
{
DataRow dr = dt.NewRow();
dr["ID"] = i;
dr["Name"] = i.ToString();
dr["Password"] =i.ToString();
dt.Rows.Add(dr);
}
//映射数据源
this.dataSetForReport1.MasterTable.Merge(dt);
}
#endregion
#region DataBindClidren
private voidDataBindClidren()
{
//清空DataBindClidren
this.dataSetForReport1.ClidrenTable.Clear();
DataTable dt = newDataTable();
dt.Columns.Add("ID");
dt.Columns.Add("ClidrenID");
dt.Columns.Add("Comment");
//循环添加数据
for (int i = 0; i< 5; i++)
{
for (intj = 0; j < 5; j++)
{
DataRow dr = dt.NewRow();
dr["ID"] = i;
dr["ClidrenID"]=j.ToString();
dr["Comment"] = "Comment " + j.ToString();
dt.Rows.Add(dr);
}
}
//映射数据源
this.dataSetForReport1.ClidrenTable.Merge(dt);
}
#endregion
因为是演示,所以写的比较简单。
实际应用中可以通过Session获取数据,也就是在打开该页面之前将数据放进Session中,然后页面初始化时直接获取Session,然后转为DataTable映射即可。
最后记得清除licenses.licx中的数据(盗版)

现在按F5运行一下

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。