2011-08-18 110 views
3

我在devexreport上工作,我想以编程方式创建表我使用这些代码但有一点问题。以编程方式创建表

 DevExpress.XtraReports.UI.XRTable tbl = new XRTable();  
     DevExpress.XtraReports.UI.XRBarCode xrBarCode = new XRBarCode(); 

     Detail1.Controls.Add(tbl); 

     tbl.Location = new System.Drawing.Point(358, 17); 
     tbl.Size = new System.Drawing.Size(358, 50); 
     tbl.Borders = (DevExpress.XtraPrinting.BorderSide) 
      (((DevExpress.XtraPrinting.BorderSide.Left 
      | DevExpress.XtraPrinting.BorderSide.Top) 
      | DevExpress.XtraPrinting.BorderSide.Right) 
      | DevExpress.XtraPrinting.BorderSide.Bottom); 


     // Total number of rows. 
     int rowCnt; 
     // Current row count. 
     int rowCtr; 
     // Total number of cells per row (columns). 
     int cellCtr; 
     // Current cell counter 
     int cellCnt; 

     rowCnt = int.Parse("2"); 
     cellCnt = int.Parse("3"); 

     for (rowCtr = 1; rowCtr <= rowCnt; rowCtr++) 
     { 
      // Create new row and add it to the table. 
      DevExpress.XtraReports.UI.XRTableRow row = new XRTableRow(); 
      tbl.Rows.Add(row); 
      for (cellCtr = 1; cellCtr <= cellCnt; cellCtr++) 
      { 
       // Create a new cell and add it to the row. 
       DevExpress.XtraReports.UI.XRTableCell cell = new XRTableCell(); 
       cell.Text = "Row " + rowCtr + ", Cell " + cellCtr; 
       row.Cells.Add(cell); 
      } 
     } 

我试试这段代码bur最后一行很困惑!所有的细胞都在第一个细胞上。

The table result is like this

有什么不对?

回答

3

不知道是否会有所帮助,但尝试移动tbl.Rows.Add(row);部分是这样的:

for (rowCtr = 1; rowCtr <= rowCnt; rowCtr++) 
{ 
    // Create new row.. 
    DevExpress.XtraReports.UI.XRTableRow row = new XRTableRow(); 

    for (cellCtr = 1; cellCtr <= cellCnt; cellCtr++) 
    { 
     // Create a new cell and add it to the row. 
     DevExpress.XtraReports.UI.XRTableCell cell = new XRTableCell(); 
     cell.Text = "Row " + rowCtr + ", Cell " + cellCtr; 
     row.Cells.Add(cell); 
    } 

    // ..and add it to the table. 
    tbl.Rows.Add(row); 
} 
+0

谢谢你帮助不够.. – Rapunzo