The requested page is not available for the requested platform. You are viewing the content for Default platform.

XRTable.BeginInit() Method

Starts the XRTable's initialization. Initialization occurs at runtime.

Namespace: DevExpress.XtraReports.UI

Assembly: DevExpress.XtraReports.v18.2.dll


public void BeginInit()
Public Sub BeginInit


To create XRTable at runtime and manually add XRTableRow and XRTableCell objects to it, it is always required to enclose this code inside the BeginInit and XRTable.EndInit method calls.

Because the final size of a table does not consider the size of its rows and cells , you need to manually set the table size and width (or, call the XRTable.AdjustSize method) before calling the XRTable.EndInit method.


The height of a table should be explicitly specified only if the cell content is not expected to stretch the cells (e.g., this may happen when their XRTableCell.CanGrow property is enabled).


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) {

public XRTable CreateXRTable() {
    int cellsInRow = 3;
    int rowsCount = 3;
    float rowHeight = 25f;

    XRTable table = new XRTable();
    table.Borders = DevExpress.XtraPrinting.BorderSide.All;

    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();

    table.BeforePrint += new PrintEventHandler(table_BeforePrint);
    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;
See Also