Skip to main content
A newer version of this page is available. .

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

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.

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;
}

Implements

See Also