1 Answer, 1 is accepted
0
Hi saravana,
Below is a code snippet that evaluates data and creates a Table item's template at run-time. The generated Table item is bound to the data object. There is also a static row group that will display totals.
The code is generated by VS Report Designer and it is adjusted for usage at run-time:
Regards,
Stef
Telerik by Progress
Below is a code snippet that evaluates data and creates a Table item's template at run-time. The generated Table item is bound to the data object. There is also a static row group that will display totals.
The code is generated by VS Report Designer and it is adjusted for usage at run-time:
public DataTable GetData() { dynamic table = new DataTable(); table.Columns.Add("col1", typeof(int)); table.Columns.Add("col2", typeof(int)); table.Rows.Add(1, 3); table.Rows.Add(4, 6); table.Rows.Add(2, 5); table.Rows.Add(4, 7); return table; } public Telerik.Reporting.Report GenerateReport() { //create a blank report Telerik.Reporting.Report report = new Telerik.Reporting.Report(); report.Name = "Report1"; report.PageSettings.Margins = new Telerik.Reporting.Drawing.MarginsU(Telerik.Reporting.Drawing.Unit.Inch(1.0), Telerik.Reporting.Drawing.Unit.Inch(1.0), Telerik.Reporting.Drawing.Unit.Inch(1.0), Telerik.Reporting.Drawing.Unit.Inch(1.0)); report.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Letter; report.Width = Telerik.Reporting.Drawing.Unit.Inch(6.0); //create a detail section and add it to the report instance's Items collection Telerik.Reporting.DetailSection detailSection = new Telerik.Reporting.DetailSection(); detailSection.Height = Telerik.Reporting.Drawing.Unit.Inch(1); detailSection.Name = "DetailSection"; report.Items.AddRange(new Telerik.Reporting.ReportItemBase[] { detailSection }); //create a blank Table item Telerik.Reporting.Table table1 = new Telerik.Reporting.Table(); table1.Location = new Telerik.Reporting.Drawing.PointU(Telerik.Reporting.Drawing.Unit.Inch(0.0), Telerik.Reporting.Drawing.Unit.Inch(0.0)); table1.Name = "Table1"; table1.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(4), Telerik.Reporting.Drawing.Unit.Inch(1)); //get the data for the table dynamic data = GetData(); table1.DataSource = data; //create a dynamic row group Telerik.Reporting.TableGroup DetailRowGroup = new Telerik.Reporting.TableGroup(); DetailRowGroup.Groupings.Add(new Telerik.Reporting.Grouping(null)); DetailRowGroup.Name = "DetailRowGroup"; table1.RowGroups.Add(DetailRowGroup); //add a row container table1.Body.Rows.Add(new Telerik.Reporting.TableBodyRow(Telerik.Reporting.Drawing.Unit.Inch(0.5))); //add columns for (int i = 0; i <= data.Columns.Count - 1; i++) { //add a column container table1.Body.Columns.Add(new Telerik.Reporting.TableBodyColumn(Telerik.Reporting.Drawing.Unit.Inch(2))); //add a static column group per data field Telerik.Reporting.TableGroup columnGroup = new Telerik.Reporting.TableGroup(); table1.ColumnGroups.Add(columnGroup); //header textbox Telerik.Reporting.TextBox headerTextBox = new Telerik.Reporting.TextBox(); headerTextBox.Name = "headerTextBox" + i.ToString(); headerTextBox.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(2), Telerik.Reporting.Drawing.Unit.Inch(0.5)); headerTextBox.Value = data.Columns[i].ColumnName; headerTextBox.Style.BackgroundColor = Color.Yellow; headerTextBox.Style.BorderStyle.Default = Telerik.Reporting.Drawing.BorderType.Solid; // headerTextBox.Style.BorderWidth.Default = Telerik.Reporting.Drawing.Unit.Pixel(1); columnGroup.ReportItem = headerTextBox; //field that will be displayed Telerik.Reporting.TextBox detailRowTextBox = new Telerik.Reporting.TextBox(); detailRowTextBox.Name = "detailRowTextBox" + i.ToString(); detailRowTextBox.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(2), Telerik.Reporting.Drawing.Unit.Inch(0.5)); detailRowTextBox.Value = "= Fields.[" + data.Columns[i].ColumnName + "]"; table1.Body.SetCellContent(0, i, detailRowTextBox); //add the nested items in the Table.Items collection table1.Items.AddRange(new Telerik.Reporting.ReportItemBase[] { headerTextBox, detailRowTextBox }); } //add total group - static group out of the detail row group table1.Body.Rows.Add(new Telerik.Reporting.TableBodyRow(Telerik.Reporting.Drawing.Unit.Inch(0.5))); Telerik.Reporting.TableGroup totalRowGroup = new Telerik.Reporting.TableGroup(); totalRowGroup.Name = "totalRowGroup"; table1.RowGroups.Add(totalRowGroup); for (int i = 0; i <= data.Columns.Count - 1; i++) { Telerik.Reporting.TextBox totalRowTextBox = new Telerik.Reporting.TextBox(); totalRowTextBox.Name = "detailRowTextBox" + i.ToString(); totalRowTextBox.Size = new Telerik.Reporting.Drawing.SizeU(Telerik.Reporting.Drawing.Unit.Inch(2), Telerik.Reporting.Drawing.Unit.Inch(0.5)); totalRowTextBox.Value = "='Total:'+ Sum(Fields.[" + data.Columns[i].ColumnName + "])"; totalRowTextBox.Style.BackgroundColor = Color.Azure; table1.Body.SetCellContent(1, i, totalRowTextBox); } //add the table in the detail section's Items collection detailSection.Items.AddRange(new Telerik.Reporting.ReportItemBase[] { table1 }); return report; }Regards,
Stef
Telerik by Progress
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Feedback Portal
and vote to affect the priority of the items