or
Dim MyTable As CrystalDecisions.CrystalReports.Engine.Table Dim mySubreport As CrystalDecisions.CrystalReports.Engine.ReportDocument
Hi, I am following the example "AutoGenerateColumns" found on the forum to dynamically populate data from the database in Telerik.Reporting.Table.System.Xml.XmlException: The '@' character, hexadecimal value 0x40, cannot be included in a name. Line 1, position 30.private void table1_ItemDataBinding(object sender, EventArgs e) { Telerik.Reporting.Processing.Table processingTable = (sender as Telerik.Reporting.Processing.Table); processingTable.DataSource = _dataTable; //create two HtmlTextBox items (one for header and one for data) which would be added to the items collection of the table Telerik.Reporting.HtmlTextBox textboxGroup; Telerik.Reporting.HtmlTextBox textBoxTable; //we do not clear the Rows collection, since we have a details row group and need to create columns only this.table1.ColumnGroups.Clear(); this.table1.Body.Columns.Clear(); this.table1.Body.Rows.Clear(); int i = 0; this.table1.ColumnHeadersPrintOnEveryPage = true; foreach (DataColumn dc in _report.ReportData.Columns) { Telerik.Reporting.TableGroup tableGroupColumn = new Telerik.Reporting.TableGroup(); this.table1.ColumnGroups.Add(tableGroupColumn); this.table1.Body.Columns.Add(new Telerik.Reporting.TableBodyColumn(Unit.Inch(1))); textboxGroup = new Telerik.Reporting.HtmlTextBox(); textboxGroup.Style.BorderColor.Default = Color.Black; textboxGroup.Style.BorderStyle.Default = BorderType.Solid; textboxGroup.Value = dc.ColumnName.ToString(); textboxGroup.Size = new SizeU(Unit.Inch(1.1), Unit.Inch(0.3)); tableGroupColumn.ReportItem = textboxGroup; textBoxTable = new Telerik.Reporting.HtmlTextBox(); textBoxTable.Style.BorderColor.Default = Color.Black; textBoxTable.Style.BorderStyle.Default = BorderType.Solid; textBoxTable.Value = "=Fields.[" + dc.ColumnName + "]"; textBoxTable.Size = new SizeU(Unit.Inch(1.1), Unit.Inch(0.3)); this.table1.Body.SetCellContent(0, i++, textBoxTable); this.table1.Items.AddRange(new ReportItemBase[] { textBoxTable, textboxGroup }); } }the DataTable is a very simple two-column table : Employee Name / Employee Email address The below exception is thrown for each email address table cell when the table is generated :
<form id="ReportManagement" runat="server" style="width: 100%">
<div id="content" >
<telerik:ReportViewer ID="ReportManagementViewer" runat="server"
Width="100%" ViewMode="PrintPreview" Height="690px"
ParametersAreaVisible="False" ShowParametersButton="False"
ShowDocumentMapButton="False" ShowPrintPreviewButton="False"
ZoomPercent="200" ShowZoomSelect="False" ShowHistoryButtons="False">
</telerik:ReportViewer>
</div>
</form>
foreach (Telerik.Reporting.SubReport item in ReportLib.ReportBase.GetDescendantsByType(this.Report, typeof(Telerik.Reporting.SubReport))){ item.ReportSource.DataSource = ds.Tables[ReportLib.ReportBase.GetDataSetIndex(item.Name)];}