DevExpress.XtraReports打印
使用DevExpress.XtraReports打印报表时,分别采用两种打印方式。以下面的打印样式为列作简要说明:
第一种:表头表尾保持不变,表中数据根据实际打印条数更改。如现在我要打印的学生为三个,则得到如下的报表:
实现方式:1、新建在XtraReport1中,分别在PageHeader中设计表头,在Detail中设计表尾,在pageFooter中设计出表中数据部分,如下图所示:
2、报表的C#代码:
/// <summary> /// 自己构造数据源,当然 可以从程序 中传入数据 源 /// </summary> /// <returns></returns> private DataTable CreateTable() { DataTable dt = new DataTable(); dt.Columns.Add("class"); dt.Columns.Add("name"); dt.Columns.Add("number"); //添加数据 DataRow dr1 = dt.NewRow(); dr1.BeginEdit(); dr1["class"] = "计算机一"; dr1["name"] = "张三"; dr1["number"] = "1234"; dr1.EndEdit(); dt.Rows.Add(dr1); DataRow dr2 = dt.NewRow(); dr2.BeginEdit(); dr2["class"] = "计算机一"; dr2["name"] = "王五"; dr2["number"] = "1235"; dr2.EndEdit(); dt.Rows.Add(dr2); DataRow dr3 = dt.NewRow(); dr3.BeginEdit(); dr3["class"] = "计算机二"; dr3["name"] = "李四"; dr3["number"] = "1236"; dr3.EndEdit(); dt.Rows.Add(dr3); return dt; } /// <summary> /// 给报表控件赋值 /// </summary> private void DataBind() { DataTable dtSource = this.CreateTable(); //学生信息 this.myclasss.DataBindings.Add("Text", dtSource, "class"); this.name.DataBindings.Add("Text", dtSource, "name"); this.number.DataBindings.Add("Text", dtSource, "number"); //打印日期 this.dates.Text = DateTime.Now.ToShortDateString(); }
3、C#程序调用该报表代码:
private void Print_Click(object sender, EventArgs e) { XtraReport1 report = new XtraReport1(); PreviewLocalizer.Active = new ChineaseReportLocalizer(); report.ShowPreviewDialog(); }
第二种:整张表的样式都不变,当需要打印三位学生信息时,则会打印出三张报表。
效果如下:
实现方式:1、新建XtraReport2,在中设计整张打印报表(可以删除),设计如下图所示:
2、C#代码与上面代码一致。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步