使用DevExpress.XtraReports打印报表时,分别采用两种打印方式。以下面的打印样式为列作简要说明:
第一种:表头表尾保持不变,表中数据根据实际打印条数更改。如现在我要打印的学生为三个,则得到如下的报表:
实现方式:1、新建在XtraReport1中,分别在PageHeader中设计表头,在Detail中设计表尾,在pageFooter中设计出表中数据部分,如下图所示:
2、报表的C#代码:
////// 自己构造数据源,当然 可以从程序 中传入数据 源/// /// 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;}/// /// 给报表控件赋值/// 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#代码与上面代码一致。