DevExpress.XtraReport动态报表的制作

xiaoxiao2026-08-26  9

using System; using System.Drawing; using System.Collections; using System.ComponentModel; using DevExpress.XtraReports.UI; using System.Collections.Generic; namespace DL698AmmeterTest.form { public partial class XtraReport1 : DevExpress.XtraReports.UI.XtraReport { private string _changShang;//厂商 private string _sn;//型号 private string _type;//类型 private string _songJianRen;//送检人 private string _ceShiDanWei;//测试单位 private string _ceShiRen;//测试人 private TestPlan _testPlan;//测试计划(批次) private List<TestItem> _listTI;//测试项 private List<Ammeter> _listAmmeter;//测试结果 private ReportOptions ro = new ReportOptions(); public XtraReport1() { InitializeComponent(); } public XtraReport1(TestPlan testPlan, List<TestItem> listTI, List<Ammeter> listAmmeter) { InitializeComponent(); this._testPlan = testPlan; if (listTI != null && listTI.Count > 0) { this._listTI = listTI; } else { this._listTI = new List<TestItem>(); } if (listAmmeter != null && listAmmeter.Count > 0) { this._listAmmeter = listAmmeter; } else { this._listAmmeter = new List<Ammeter>(); } } //设置标题 public void setTitle() { this.xrLabelTitle.Text = this._testPlan.Test_name; } public void setFoot() { } public void setBody() { Int64 planid = this._testPlan.Id; foreach (Ammeter ammeter in this._listAmmeter) { //创建panel1,并将label及表头加入 XRPanel xrPanel1 = new XRPanel(); xrPanel1.Location = new Point(0, getY()); xrPanel1.Size = new Size(PageWidth - Margins.Left - Margins.Right, 42); this.Detail.Controls.Add(xrPanel1); XRLabel xrLabel1 = new XRLabel(); xrLabel1.Text = "电能表号:"; xrLabel1.Location = new Point(0, 8); xrLabel1.Size = new Size(Convert.ToInt32(xrPanel1.Width * 0.13), 25); xrLabel1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; xrPanel1.Controls.Add(xrLabel1); //填写表号的label XRLabel xrLabel2 = new XRLabel(); xrLabel2.Location = new Point(xrLabel1.Location.X + xrLabel1.Width, 8); xrLabel2.Size = new Size(Convert.ToInt32(xrPanel1.Width * 0.2), 25); xrLabel2.Text = ammeter.Ammeter_adc_id; xrLabel2.Font = new Font("宋体", 10, FontStyle.Underline); xrLabel2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; xrPanel1.Controls.Add(xrLabel2); XRLabel xrLabel3 = new XRLabel(); xrLabel3.Text = "送检单位:"; xrLabel3.Location = new Point(xrLabel2.Location.X + xrLabel2.Width, 8); xrLabel3.Size = new Size(Convert.ToInt32(xrPanel1.Width * 0.13), 25); xrLabel3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; xrPanel1.Controls.Add(xrLabel3); //填写送检单位的label XRLabel xrLabel4 = new XRLabel(); xrLabel4.Location = new Point(xrLabel3.Location.X + xrLabel3.Width, 8); xrLabel4.Size = new Size(Convert.ToInt32(xrPanel1.Width * 0.23), 25); xrLabel4.Text = this._testPlan.Comsumer_name; xrLabel4.Font = new Font("宋体", 10, FontStyle.Underline); xrLabel4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; xrPanel1.Controls.Add(xrLabel4); XRLabel xrLabel5 = new XRLabel(); xrLabel5.Text = "测试日期:"; xrLabel5.Location = new Point(xrLabel4.Location.X + xrLabel4.Width, 8); xrLabel5.Size = new Size(Convert.ToInt32(xrPanel1.Width * 0.13), 25); xrLabel5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; xrPanel1.Controls.Add(xrLabel5); // XRLabel xrLabel6 = new XRLabel(); xrLabel6.Location = new Point(xrLabel5.Location.X + xrLabel5.Width, 8); xrLabel6.Size = new Size(Convert.ToInt32(xrPanel1.Width * 0.18), 25); xrLabel6.Text = this._testPlan.Test_time.Year + "年" + this._testPlan.Test_time.Month + "月" + this._testPlan.Test_time.Day + "日"; xrLabel6.Font = new Font("宋体", 10, FontStyle.Underline); xrLabel6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; xrPanel1.Controls.Add(xrLabel6); //panel2,装表格 XRPanel xrPanel2 = new XRPanel(); xrPanel2.Location = new Point(0, xrPanel1.Location.Y + 25); xrPanel2.Size = new Size(xrPanel1.Width, 42); this.Detail.Controls.Add(xrPanel2); List<TestResult> listTr = ro.findByPlanIDAndAmmeterAdc_TestResult(planid, ammeter.Ammeter_adc_id); List<TestData> listTd = new List<TestData>(); XRTable xrTable1 = new XRTable(); xrTable1.BorderWidth = 1; xrTable1.Borders = DevExpress.XtraPrinting.BorderSide.All; xrTable1.Location = new Point(0, 8); // xrTable1.Size = new Size(xrPanel2.Width, 25*(listTr.Count+2)/3); xrTable1.Size = new Size(xrPanel2.Width, 25); //第一行,表头 XRTableRow xrTableRow1 = new XRTableRow(); XRTableCell xrTableCell1 = new XRTableCell(); XRTableCell xrTableCell2 = new XRTableCell(); XRTableCell xrTableCell3 = new XRTableCell(); xrTableRow1.Size = new Size(xrTable1.Width, 25); xrTableRow1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTable1.Rows.Add(xrTableRow1); //第一行,第一列 xrTableCell1.Size = new Size(Convert.ToInt32(xrTableRow1.Width * 0.4), 25); xrTableCell1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell1.Font = new Font("宋体", 10, FontStyle.Bold); xrTableCell1.Width = Convert.ToInt32(xrTableRow1.Width * 0.4); xrTableCell1.Text = "抄收数据项"; //第一行,第二列 //XRTableCell xrTableCell2 = new XRTableCell(); xrTableCell2.Size = new Size(Convert.ToInt32(xrTableRow1.Width * 0.3), 25); xrTableCell2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell2.Font = new Font("宋体", 10, FontStyle.Bold); xrTableCell2.Width = Convert.ToInt32(xrTableRow1.Width * 0.3); xrTableCell2.Text = "抄收实时数据"; //第一行,第三列 //XRTableCell xrTableCell3 = new XRTableCell(); xrTableCell3.Size = new Size(Convert.ToInt32(xrTableRow1.Width * 0.3), 25); xrTableCell3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell3.Font = new Font("宋体", 10, FontStyle.Bold); xrTableCell3.Width = Convert.ToInt32(xrTableRow1.Width * 0.3); xrTableCell3.Text = "抄收冻结数据"; xrTableRow1.Cells.Add(xrTableCell1); xrTableRow1.Cells.Add(xrTableCell2); xrTableRow1.Cells.Add(xrTableCell3); foreach (TestItem testItem in this._listTI) { TestData td = new TestData(); td.Test_item = testItem.Name; td.Result1 = "电能表没有该功能"; td.Result2 = "电能表没有该功能"; listTd.Add(td); foreach (TestResult testResult in listTr) { if (testItem.Id == testResult.Test_item_id) { foreach (TestData td1 in listTd) { if (td1.Test_item == testItem.Name) { if (testResult.Type.Substring(0,2)=="01") { td1.Result1 = "通过"; } else if (testResult.Type.Substring(0,2) == "02") { td1.Result2 = "通过"; } } } } } } foreach (TestData testData in listTd) { xrTable1.Height = xrTable1.Height + 25; XRTableRow xrTableRow2 = new XRTableRow(); xrTableRow2.Size = xrTableRow1.Size; XRTableCell xrTableCell4 = new XRTableCell(); xrTableCell4.Size = xrTableCell1.Size; xrTableCell4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; xrTableCell4.Width = xrTableCell1.Width; xrTableCell4.Text = testData.Test_item; xrTableRow2.Cells.Add(xrTableCell4); XRTableCell xrTableCell5 = new XRTableCell(); xrTableCell5.Size = xrTableCell2.Size; xrTableCell5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; xrTableCell5.Width = xrTableCell2.Width; xrTableCell5.Text = testData.Result1; xrTableRow2.Cells.Add(xrTableCell5); XRTableCell xrTableCell6 = new XRTableCell(); xrTableCell6.Size = xrTableCell3.Size; xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; xrTableCell6.Width = xrTableCell3.Width; xrTableCell6.Text = testData.Result2; xrTableRow2.Cells.Add(xrTableCell6); //xrTable1.Rows.AddRange(new XRTableRow[] { xrTableRow2 }); xrTable1.Rows.Add(xrTableRow2); } xrPanel2.Controls.Add(xrTable1); //panel3,装表底 XRPanel xrPanel3 = new XRPanel(); xrPanel3.Location = new Point(0, xrPanel2.Location.Y + xrPanel2.Height + 10); xrPanel3.Size = new Size(xrPanel2.Width, 150); XRLabel xrLabel8 = new XRLabel(); xrLabel8.Text = "(具体的抄收数据报文、解析数据作为附录)"; xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; xrLabel8.Location = new Point(0, 0); xrLabel8.Size = new Size(Convert.ToInt32(xrPanel3.Width * 0.6), 25); xrPanel3.Controls.Add(xrLabel8); XRLabel xrLabel9 = new XRLabel(); xrLabel9.Text = "测试人员:"; xrLabel9.Location = new Point(308, 33); xrLabel9.Size = new Size(Convert.ToInt32(xrPanel3.Width * 0.2), 25); xrLabel9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; xrPanel3.Controls.Add(xrLabel9); XRLabel xrLabel10 = new XRLabel(); xrLabel10.Text = "测试单位: (盖章有效)"; xrLabel10.Location = new Point(308, 75); xrLabel10.Size = new Size(Convert.ToInt32(xrPanel3.Width * 0.3), 25); xrLabel10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; xrPanel3.Controls.Add(xrLabel10); XRLabel xrLabel11 = new XRLabel(); xrLabel11.Text = "日  期:"; xrLabel11.Location = new Point(308, 117); xrLabel11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; xrLabel11.Size = new Size(Convert.ToInt32(xrPanel3.Width * 0.3), 25); xrPanel3.Controls.Add(xrLabel11); this.Detail.Controls.Add(xrPanel3); XRPageBreak xrPageBreak0 = new XRPageBreak(); Detail.Controls.Add(xrPageBreak0); xrPageBreak0.Location = new Point(0, xrPanel3.Location.Y + xrPanel3.Height + 10); //附抄收数据结果 //sql:select t1.id , t1.ammeter_id,t1.result,t1.plant_id, t2.name as test_item,t1.happen_time from test_result as t1 join test_item as t2 on t1.test_item=t2.id //SELECT t1.ID, t1.AMMETER_ID, t1.RESULT, t1.PLANT_ID, t2.NAME AS Test_Item, t1.HAPPEN_TIME FROM TEST_RESULT AS t1 INNER JOINTEST_ITEM AS t2 ON t1.TEST_ITEM = t2.ID WHERE (t1.PLANT_ID = 1) AND (t1.AMMETER_ID = '000000000011') //panel4,装附加信息 XRPanel xrPanel4 = new XRPanel(); xrPanel4.Location = new Point(0, xrPageBreak0.Location.Y); xrPanel4.Size = new Size(xrPanel3.Width, 42); this.Detail.Controls.Add(xrPanel4); List<TestResult> listResultData = ro.findTestResult1(planid, ammeter.Ammeter_adc_id); XRLabel xrLabelf = new XRLabel(); xrLabelf.Text = "附表:"; xrLabelf.Location = new Point(0, 0); xrLabelf.Size = new Size(83, 25); xrLabelf.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; xrPanel4.Controls.Add(xrLabelf); int pages = 0; if (listResultData.Count % 34 == 0) { pages = listResultData.Count / 34; } else { pages = listResultData.Count / 34 + 1; } int num = 0; int tablex = 0; int tabley = 30; int n = 0; for (int p = 1; p <= pages; p++) { XRTable xrTable3 = new XRTable(); xrTable3.Location = new Point(tablex, tabley); //xrTable3.Size = new Size(xrPanel4.Width, 25 * (listResultData.Count + 6) / 7); xrTable3.Size = new Size(xrPanel4.Width, 25); xrTable3.Borders = DevExpress.XtraPrinting.BorderSide.All; xrTable3.BorderWidth = 1; xrTable3.Font = new Font("宋体", 8); xrPanel4.Controls.Add(xrTable3); XRTableRow xrTableRow3 = new XRTableRow(); xrTableRow3.Size = new Size(xrTable3.Width, 25); //xrTable3.Rows.Add(xrTableRow3); XRTableCell xrTableCell_3 = new XRTableCell(); xrTableCell_3.Size = new Size(Convert.ToInt32(xrTableRow3.Width * 0.05), 25); //xrTableCell_3.Size = new Size(83, 25); // xrTableCell_3.Width = Convert.ToInt32(xrTableRow3.Width * 0.1); xrTableCell_3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell_3.Font = new Font("宋体", 8, FontStyle.Bold); xrTableCell_3.Text = "编号"; xrTableRow3.Cells.Add(xrTableCell_3); XRTableCell xrTableCell_4 = new XRTableCell(); xrTableCell_4.Size = new Size(Convert.ToInt32(xrTableRow3.Width * 0.15), 25); //xrTableCell_4.Size = new Size(165, 25); //xrTableCell_4.Width = Convert.ToInt32(xrTableRow3.Width * 0.2); xrTableCell_4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell_4.Font = new Font("宋体", 8, FontStyle.Bold); xrTableCell_4.Text = "电能表编号"; xrTableRow3.Cells.Add(xrTableCell_4); XRTableCell xrTableCell_5 = new XRTableCell(); xrTableCell_5.Size = new Size(Convert.ToInt32(xrTableRow3.Width * 0.2), 25); //xrTableCell_5.Size = new Size(83, 25); //xrTableCell_5.Width = Convert.ToInt32(xrTableRow3.Width * 0.1); xrTableCell_5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell_5.Font = new Font("宋体", 8, FontStyle.Bold); xrTableCell_5.Text = "抄收结果"; xrTableRow3.Cells.Add(xrTableCell_5); //XRTableCell xrTableCell_6 = new XRTableCell(); //xrTableCell_6.Size = new Size(Convert.ToInt32(xrTableRow3.Width * 0.1), 25); xrTableCell_6.Size = new Size(83, 25); xrTableCell_6.Width = Convert.ToInt32(xrTableRow3.Width * 0.1); //xrTableCell_6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; //xrTableCell_6.Font = new Font("宋体", 10, FontStyle.Bold); //xrTableCell_6.Text = "计划批次"; //xrTableRow3.Cells.Add(xrTableCell_6); XRTableCell xrTableCell_7 = new XRTableCell(); xrTableCell_7.Size = new Size(Convert.ToInt32(xrTableRow3.Width * 0.2), 25); //xrTableCell_7.Size = new Size(165, 25); //xrTableCell_7.Width = Convert.ToInt32(xrTableRow3.Width * 0.2); xrTableCell_7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell_7.Font = new Font("宋体", 8, FontStyle.Bold); xrTableCell_7.Text = "测试项目"; xrTableRow3.Cells.Add(xrTableCell_7); XRTableCell xrTableCell_8 = new XRTableCell(); xrTableCell_8.Size = new Size(Convert.ToInt32(xrTableRow3.Width * 0.2), 25); //xrTableCell_8.Size = new Size(165, 25); //xrTableCell_8.Width = Convert.ToInt32(xrTableRow3.Width * 0.2); xrTableCell_8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell_8.Font = new Font("宋体", 8, FontStyle.Bold); xrTableCell_8.Text = "测试时间"; xrTableRow3.Cells.Add(xrTableCell_8); XRTableCell xrTableCell_9 = new XRTableCell(); //xrTableCell_9.Size = new Size(Convert.ToInt32(xrTableRow3.Width * 0.1), 25); //xrTableCell_9.Size = new Size(83, 25); xrTableCell_9.Size = new Size(Convert.ToInt32(xrTableRow3.Width * 0.2), 25); xrTableCell_9.Width = Convert.ToInt32(xrTableRow3.Width * 0.1); xrTableCell_9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell_9.Font = new Font("宋体", 8, FontStyle.Bold); xrTableCell_9.Text = "类型"; xrTableRow3.Cells.Add(xrTableCell_9); xrTable3.Height = xrTable3.Height + 25; xrTable3.Rows.Add(xrTableRow3); int pagestemp = 0; if (p * 34 > listResultData.Count) { pagestemp = listResultData.Count; } else { pagestemp = p * 34; } for (int j = n; j < pagestemp; j++) { num++; n++; TestResult tr2 = listResultData[j]; xrTable3.Height = xrTable3.Height + 25; XRTableRow xrTableRow_3 = new XRTableRow(); xrTableRow_3.Size = xrTableRow3.Size; // xrTable3.Rows.Add(xrTableRow_3); xrTableRow_3.Borders = DevExpress.XtraPrinting.BorderSide.All; xrTableRow_3.BorderWidth = 1; XRTableCell xrTableCell_31 = new XRTableCell(); xrTableCell_31.Size = xrTableCell_3.Size; xrTableCell_31.Width = xrTableCell_3.Width; xrTableCell_31.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell_31.Text = num.ToString(); xrTableCell_31.Borders = DevExpress.XtraPrinting.BorderSide.All; xrTableCell_31.BorderWidth = 1; xrTableRow_3.Cells.Add(xrTableCell_31); XRTableCell xrTableCell_41 = new XRTableCell(); xrTableCell_41.Size = xrTableCell_4.Size; xrTableCell_41.Width = xrTableCell_4.Width; xrTableCell_41.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell_41.Text = tr2.Ammeter_id; xrTableCell_41.Borders = DevExpress.XtraPrinting.BorderSide.All; xrTableCell_41.BorderWidth = 1; xrTableRow_3.Cells.Add(xrTableCell_41); XRTableCell xrTableCell_51 = new XRTableCell(); xrTableCell_51.Size = xrTableCell_5.Size; xrTableCell_51.Width = xrTableCell_5.Width; xrTableCell_51.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell_51.Text = tr2.Result; xrTableCell_51.Borders = DevExpress.XtraPrinting.BorderSide.All; xrTableCell_51.BorderWidth = 1; xrTableRow_3.Cells.Add(xrTableCell_51); //XRTableCell xrTableCell_61 = new XRTableCell(); //xrTableCell_61.Size = xrTableCell_6.Size; //xrTableCell_61.Width = xrTableCell_6.Width; //xrTableCell_61.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; //xrTableCell_61.Text = tr2.Plan_id.ToString(); //xrTableCell_61.Borders = DevExpress.XtraPrinting.BorderSide.All; //xrTableCell_61.BorderWidth = 1; //xrTableRow_3.Cells.Add(xrTableCell_61); XRTableCell xrTableCell_71 = new XRTableCell(); xrTableCell_71.Size = xrTableCell_7.Size; xrTableCell_71.Width = xrTableCell_7.Width; xrTableCell_71.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell_71.Text = tr2.Test_item_string; xrTableCell_71.Borders = DevExpress.XtraPrinting.BorderSide.All; xrTableCell_71.BorderWidth = 1; xrTableRow_3.Cells.Add(xrTableCell_71); XRTableCell xrTableCell_81 = new XRTableCell(); xrTableCell_81.Size = xrTableCell_8.Size; xrTableCell_81.Width = xrTableCell_8.Width; xrTableCell_81.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell_81.Text = tr2.Happen_time.ToString(); xrTableCell_81.Borders = DevExpress.XtraPrinting.BorderSide.All; xrTableCell_81.BorderWidth = 1; xrTableRow_3.Cells.Add(xrTableCell_81); XRTableCell xrTableCell_91 = new XRTableCell(); xrTableCell_91.Size = xrTableCell_9.Size; xrTableCell_91.Width = xrTableCell_9.Width; xrTableCell_91.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; xrTableCell_91.Borders = DevExpress.XtraPrinting.BorderSide.All; xrTableCell_91.BorderWidth = 1; if (tr2.Type.Equals("0100")) { xrTableCell_91.Text = "实时"; } else if (tr2.Type.Equals("0200")) { xrTableCell_91.Text = "冻结(5min)"; } else if (tr2.Type.Equals("0201")) { xrTableCell_91.Text = "冻结(15min)"; } else if (tr2.Type.Equals("0202")) { xrTableCell_91.Text = "冻结(30min)"; } else if (tr2.Type.Equals("0203")) { xrTableCell_91.Text = "冻结(60min)"; } else if (tr2.Type.Equals("0204")) { xrTableCell_91.Text = "冻结(24h)"; } else if (tr2.Type.Equals("0205")) { xrTableCell_91.Text = "冻结(1mon)"; } xrTableRow_3.Cells.Add(xrTableCell_91); xrTable3.Rows.Add(xrTableRow_3); } if (p == pages) { } else { XRPageBreak xrPageBreak3 = new XRPageBreak(); Detail.Controls.Add(xrPageBreak3); xrPageBreak3.Location = new Point(0, xrTable3.Location.Y + xrTable3.Height + 10); tablex = 0; tabley = xrTable3.Location.Y + xrTable3.Height + 60; } } XRPageBreak xrPageBreak1 = new XRPageBreak(); Detail.Controls.Add(xrPageBreak1); xrPageBreak1.Location = new Point(0, xrPanel4.Location.Y + xrPanel4.Height + 10); } } private void Detail_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { setBody(); } private void ReportHeader_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { setTitle(); } //得到最后一个控件的位置X public int getX() { XRControlCollection ce = this.Detail.Controls; XRControl obj = ce[ce.Count - 1]; return obj.Location.X; } //得到最后一个控件的位置Y public int getY() { XRControlCollection ce = this.Detail.Controls; int y = 8; //for (int i = ce.Count - 1; i >= 0; i--) //{ // XRControl obj = ce[i]; // if (obj.ToString() == "DevExpress.XtraReports.UI.XRPanel") // { // y = obj.Location.Y + obj.Size.Height+10; // break; // } // //if (obj.ToString() == "DevExpress.XtraReports.UI.XRPageBreak") // //{ // // y = obj.Location.Y; // // break; // //} //} if (ce != null && ce.Count > 0) { XRControl obj = ce[ce.Count - 1]; y = obj.Location.Y + obj.Size.Height + 10; } return y; } public int getHeadY() { XRControlCollection ce = this.Detail.Controls; int y = 8; for (int i = ce.Count - 1; i >= 0; i--) { XRControl obj = ce[i]; if (obj.ToString() == "DevExpress.XtraReports.UI.XRPanel") { y = obj.Location.Y + 25; break; } //if (obj.ToString() == "DevExpress.XtraReports.UI.XRPageBreak") //{ // y = obj.Location.Y; // break; //} } return y; } public int getXrPanel4Height(XRControl xrc) { XRControlCollection ce = xrc.Controls; int y = 0; for (int i = 0; i < ce.Count; i++) { y = y + ce[i].Location.Y + ce[i].Height; } return y + xrc.Location.Y; } } } 在这数据就不上传了,请大家根据需要自己更改数据源 相关资源:敏捷开发V1.0.pptx
转载请注明原文地址: https://www.6miu.com/read-5051890.html

最新回复(0)