Devexpress的报表功能十分强大!支持自动分页,可以导出为PDF,WORD,RTF等众多格式,支持打印预览!
声明:此项目使用前需安装devexpress控件。
近来项目需求,需要做出来一个班级的二维码打印。以下示例将展示devreport 如何实现类似于Datalist的数据绑定及样式布局。效果图如下:
新建 >DXperience v12.2 Report Class,命名为ImageReport.cs
将XRPicture和XRlabel拖放至工作区,并排列好!仅使用这些控件即可完成数据的绑定和批量显示,类似于repeater中的itemtemplete。
右键可以弹出带区的菜单,可以插入页眉页尾等。
接下来设置为多列显示,
1、右键点击detail区域,选择“属性”,根据下图进行设置
Mode:选择多列的显示模式,固定列数或者固定列宽(自动计算每行的列数)
Layout:横向排列还是竖向排列
点击右键,进入代码。
public partial class ImageReprot : DevExpress.XtraReports.UI.XtraReport { public ImageReprot() { InitializeComponent(); BindData(); } /// <summary> /// 数据绑定 /// </summary> private void BindData() { // 绑定名称 lbName.DataBindings.Add("Text", DataSource, "Name"); // 绑定描述 lbDescription.DataBindings.Add("Text", DataSource, "Description"); // 绑定图片(第一个参数为要绑定的属性名称) this.xrPictureBox1.DataBindings.Add("ImageUrl", DataSource, "ImagePath"); } }
2、设置显示打印页
新建webform页面 WebForm1.aspx
进入设计页面,在工具箱中拖放ReportToolbar和ReportViewer,并将ReportToolbar关联到ReportViewer上。此处需在设计界面,如果在源界面拖放,则不能完成控件的注册导致设计失败。
打开后台代码
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace DevReportTest{ public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { ImageReprot report=new ImageReprot(); ReportViewer1.Report = report; report.DataSource = Movies.GetMovies(); // 为报表设置数据列表 } }}
至此数据绑定完毕,已经达到了demo的目的。下面附上model源码。
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Collections;namespace DevReportTest{ public class Movies { public static List<MovieModel> GetMovies() { List<MovieModel> models = new List<MovieModel>(); models.Add(new MovieModel { Id = 1, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); models.Add(new MovieModel { Id = 1, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); models.Add(new MovieModel { Id = 2, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); models.Add(new MovieModel { Id = 3, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); models.Add(new MovieModel { Id = 4, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); models.Add(new MovieModel { Id = 1, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); models.Add(new MovieModel { Id = 1, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); models.Add(new MovieModel { Id = 2, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); models.Add(new MovieModel { Id = 3, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); models.Add(new MovieModel { Id = 4, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); models.Add(new MovieModel { Id = 1, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); models.Add(new MovieModel { Id = 1, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); models.Add(new MovieModel { Id = 2, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); models.Add(new MovieModel { Id = 3, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); models.Add(new MovieModel { Id = 4, Name = "审死官", ImagePath = "/1.png", Description = "《审死官》,是周星驰1992年的一部香港无厘头喜剧。主要讲述清朝时期官官相护,状师宋世杰为有冤情的寡妇杨秀珍翻案的故事。" }); return models; } } /// <summary> /// Model /// </summary> public class MovieModel { public int Id { get; set; } public string Name { get; set; } public string Description { get; set; } public string ImagePath { get; set; } }}