I have several reports that are built dynamically that stopped working after we upgraded to the Q3 2009 release, using version 3.2.9.1211. I tried setting the ReportViewer's EnableViewState property to false and that had no impact on the problem. When the report is generated a 1-page blank report appears.
I took one of the Telerik sample provided on this forum and put it in a small, much simpler project. I receive the exact sample behavior. Here is the code that I am using:
using
System;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Data;
using
System.Configuration;
using
System.Web.Security;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
Telerik.Web.UI;
using
Telerik.Reporting;
using
Telerik.Reporting.Drawing;
public
partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Telerik.Reporting.
Report rpt = new Telerik.Reporting.Report();
DataSet ds = new DataSet();
ds.Tables.Add();
DataTable table = ds.Tables[0];
int columnCount = 3;
int rowCount = 1000;
//Add columns
for (int column = 0; column <= columnCount - 1; column++)
{
table.Columns.Add(
"Column" + (column + 1).ToString(), typeof(string));
}
//Add rows
for (int row = 0; row <= (rowCount - 1); row++)
{
string[] rowVals = (string[])Array.CreateInstance(typeof(string), columnCount);
DataRowCollection rowCollection = table.Rows;
for (int column = 0; column <= columnCount - 1; column++)
{
rowVals[column] =
"value_" + (column + 1).ToString() + "_" + (row + 1).ToString();
}
table.Rows.Add(rowVals);
}
rptViewer.Report = GenerateReportDefinition(
ref ds);
rptViewer.RefreshReport();
}
private Telerik.Reporting.TextBox CreateTxtHeader(string FieldName, int i)
{
Telerik.Reporting.
TextBox txtHead = new Telerik.Reporting.TextBox();
txtHead.Value = FieldName;
return txtHead;
}
private Telerik.Reporting.TextBox CreateTxtDetail(string FieldName, int i)
{
Telerik.Reporting.
TextBox txtHead = new Telerik.Reporting.TextBox();
txtHead.Value =
"=[" + FieldName + "]";
return txtHead;
}
Telerik.Reporting.
Report GenerateReportDefinition(ref System.Data.DataSet dataSource)
{
Telerik.Reporting.
Report report1 = new Telerik.Reporting.Report();
report1.DataSource = dataSource;
int count = dataSource.Tables[0].Columns.Count - 1;
Telerik.Reporting.Drawing.
Unit x = Telerik.Reporting.Drawing.Unit.Inch(0);
Telerik.Reporting.Drawing.
Unit y = Telerik.Reporting.Drawing.Unit.Inch(0);
SizeU size = new SizeU(Telerik.Reporting.Drawing.Unit.Cm(2), Telerik.Reporting.Drawing.Unit.Inch(0.3));
Telerik.Reporting.
ReportItemBase[] headColumnList = new Telerik.Reporting.ReportItem[count];
Telerik.Reporting.
ReportItemBase[] detailColumnList = new Telerik.Reporting.ReportItem[count];
for (int column = 0; column < count; column++)
{
string columnName = dataSource.Tables[0].Columns[column].ColumnName;
Telerik.Reporting.
TextBox header = this.CreateTxtHeader(columnName, column);
header.Location =
new Telerik.Reporting.Drawing.PointU(x, y);
header.Size = size;
headColumnList[column] = header;
Telerik.Reporting.
TextBox textBox = this.CreateTxtDetail(columnName, column);
textBox.Location =
new Telerik.Reporting.Drawing.PointU(x, y);
textBox.Size = size;
detailColumnList[column] = textBox;
x += Telerik.Reporting.Drawing.
Unit.Inch(1);
}
Telerik.Reporting.
ReportHeaderSection reportHeaderSection1 = new Telerik.Reporting.ReportHeaderSection();
reportHeaderSection1.Height =
new Telerik.Reporting.Drawing.Unit(0.3, Telerik.Reporting.Drawing.UnitType.Inch);
//reportHeaderSection1.Style.BackgroundColor = Color.LightGray;
reportHeaderSection1.Items.AddRange(headColumnList);
Telerik.Reporting.
DetailSection detailSection1 = new Telerik.Reporting.DetailSection();
detailSection1.Height =
new Telerik.Reporting.Drawing.Unit(0.3, Telerik.Reporting.Drawing.UnitType.Inch);
detailSection1.Items.AddRange(detailColumnList);
report1.Items.Add(reportHeaderSection1);
report1.Items.Add(detailSection1);
return report1;
}
}