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