XRTableCell Class
A single Cell in an XRTable‘s Row.
Namespace: DevExpress.XtraReports.UI
Assembly: DevExpress.XtraReports.v17.2.dll
NuGet Package: DevExpress.Reporting.Core
Declaration
[DefaultBindableProperty("Text")]
public class XRTableCell :
XRLabel,
IBrickOwner,
IWeighty
Related API Members
The following members return XRTableCell objects:
Remarks
Objects of the XRTableCell class are used to place and hold text or other controls in a table. Usually a table cell behaves like an ordinary label control, and displays the text set by the XRControl.Text property. If an XRTableCell object contains other controls, then it can’t display the text set by its Text property.
The collection of contained controls can be accessed via the XRControl.Controls property of a table cell. The table row which contains the current table cell is accessed via the XRTableCell.Row property.
Note
When creating large tables in code, you can increase the report generator performance by setting the XRTableCell.Weight property to 1 for all table cells.
To learn more, see Creating a Table Report.
Example
This example demonstrates how to create an XRTable at runtime.
Please note that it is always required to call the XRTable.BeginInit and XRTable.EndInit methods if you modify XRTable.Rows and XRTableRow.Cells collections at runtime.
Tip
Online Example: Runtime table creation best practices (iterative approach)
using System.Drawing;
using System.Drawing.Printing;
using DevExpress.XtraReports.UI;
// ...
private void XtraReport1_BeforePrint(object sender, PrintEventArgs e) {
this.Detail.Controls.Add(CreateXRTable());
}
public XRTable CreateXRTable() {
int cellsInRow = 3;
int rowsCount = 3;
float rowHeight = 25f;
XRTable table = new XRTable();
table.Borders = DevExpress.XtraPrinting.BorderSide.All;
table.BeginInit();
for (int i = 0; i < rowsCount; i++) {
XRTableRow row = new XRTableRow();
row.HeightF = rowHeight;
for (int j = 0; j < cellsInRow; j++) {
XRTableCell cell = new XRTableCell();
row.Cells.Add(cell);
}
table.Rows.Add(row);
}
table.BeforePrint += new PrintEventHandler(table_BeforePrint);
table.AdjustSize();
table.EndInit();
return table;
}
// The following code makes the table span to the entire page width.
void table_BeforePrint(object sender, PrintEventArgs e) {
XRTable table = ((XRTable)sender);
table.LocationF = new DevExpress.Utils.PointFloat(0F, 0F);
table.WidthF = this.PageWidth - this.Margins.Left - this.Margins.Right;
}