Overview: I am using Reporting Q1 2012 and Visual Studio 2010. I have built a very simple aspx page which contains the Q1 2012 Report Viewer control. In the code behind, I am binding the ReportViewer.Report to a deserialized instance of a .trdx file that was created using the Q1 2012 Report Designer. I have SQL Server Express 2008 R2 as the data source for the SQLDataSource defined in the report.
Problem: When I view the report (.trdx) in the Report Preview of the Report Designer, the expected data populates correctly. When I run the web application and attempts to view the report using the ReportViewer control a blank page is displayed after the "Generating Report.." message disappears. Print Preview mode of the ReportViewer yields the same results. Printing and exporting to any format generates a single blank page.
Details:
viewer.aspx.cs
Problem: When I view the report (.trdx) in the Report Preview of the Report Designer, the expected data populates correctly. When I run the web application and attempts to view the report using the ReportViewer control a blank page is displayed after the "Generating Report.." message disappears. Print Preview mode of the ReportViewer yields the same results. Printing and exporting to any format generates a single blank page.
Details:
- I have followed the official documentation for deserializing the report file and binding it to the viewer.
- The report has no parameters and is a simple "Select * From [Table]" select command.
- The [Table] has only three columns.
- The SQLDataSource connection string is NOT being stored in a configuration setting.
- I have stepped through the code line by line to verify that the deserialized Report object connection strings are pointing at the correct server and database with appropriate access.
Code:
viewer.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="viewer.aspx.cs" Inherits="Panda.Web.App.Reports.Repository.Viewer" %>
<%@ Register Assembly="Telerik.ReportViewer.WebForms, Version=6.0.12.215, Culture=neutral, PublicKeyToken=a9d7983dfcc261be"
Namespace="Telerik.ReportViewer.WebForms" TagPrefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
<
link
type
=
"text/css"
rel
=
"stylesheet"
href
=
"~/Styles/reset.css"
/>
<
style
type
=
"text/css"
>
html#html, body#body, form#form1, div#content
{
height: 100%;
}
</
style
>
</
head
>
<
body
id
=
"body"
>
<
form
id
=
"form1"
runat
=
"server"
>
<
div
id
=
"content"
>
<
telerik:reportviewer
Id
=
"ReportViewer1"
runat
=
"server"
Width
=
"100%"
Height
=
"790px"
ShowDocumentMapButton
=
"False"
ShowHistoryButtons
=
"False"
ShowPrintPreviewButton
=
"False"
Skin
=
"WebBlue"
ViewMode
=
"PrintPreview"
ZoomPercent
=
"50"
></
telerik:reportviewer
>
</
div
>
</
form
>
</
body
>
</
html
>
viewer.aspx.cs
var reportDefinitionFile = Server.MapPath(
"~/app/reports/repository/rpt/"
+ _reportPath);
using
(System.Xml.XmlReader xmlReader = System.Xml.XmlReader.Create(reportDefinitionFile))
{
System.Xml.Serialization.XmlSerializer xmlSerializer =
new
System.Xml.Serialization.XmlSerializer(
typeof
(Telerik.Reporting.Report));
Telerik.Reporting.Report reportDocument = (Telerik.Reporting.Report)xmlSerializer.Deserialize(xmlReader);
var conn = WebConfigurationManager.ConnectionStrings[
"Panda.Data.ConnectionString"
];
if
(conn ==
null
)
{
conn = WebConfigurationManager.ConnectionStrings[
"Panda.Data."
+ Environment.MachineName +
".ConnectionString"
];
}
var connString = conn.ConnectionString;
// Set Report datasource connections for report, parameters and all other objects
var sds = (Telerik.Reporting.SqlDataSource)reportDocument.DataSource;
sds.ConnectionString = connString;
// parameters
foreach
(var obj
in
reportDocument.ReportParameters)
{
if
(obj.AvailableValues.DataSource !=
null
)
{
var ds = (Telerik.Reporting.SqlDataSource)obj.AvailableValues.DataSource;
ds.ConnectionString = connString;
}
}
////// other report objects
//SetConnectionStrings(reportDocument.Items, connString);
ReportViewer1.Report = reportDocument;
ReportViewer1.DataBind();
ReportViewer1.RefreshReport();
}
Settings.trdx
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
Report
Width
=
"10.45833333in"
DocumentName
=
"Panda Settings|List of global properties"
Name
=
"Settings"
>
<
DataSources
>
<
SqlDataSource
ConnectionString
=
"Server=***\***;Database=***;uid=***;pwd=****;"
SelectCommand
=
"Select * from PandaSetting"
Name
=
"Panda"
/>
</
DataSources
>
<
PageSettings
PaperKind
=
"Letter"
Landscape
=
"True"
>
<
Margins
Left
=
"0.25in"
Right
=
"0.25in"
Top
=
"0.25in"
Bottom
=
"0.25in"
/>
</
PageSettings
>
<
DataSourceRef
>Panda</
DataSourceRef
>
<
StyleSheet
>
<
StyleRule
>
<
Style
BackgroundColor
=
""
Color
=
"28, 58, 112"
>
<
Font
Name
=
"Tahoma"
Size
=
"18pt"
Style
=
"Regular"
/>
</
Style
>
<
Selectors
>
<
StyleSelector
>
<
Type
>ReportItemBase</
Type
>
<
StyleName
>Title</
StyleName
>
</
StyleSelector
>
</
Selectors
>
</
StyleRule
>
<
StyleRule
>
<
Style
BackgroundColor
=
"28, 58, 112"
Color
=
"White"
VerticalAlign
=
"Middle"
>
<
Font
Name
=
"Tahoma"
Size
=
"11pt"
Style
=
"Bold"
/>
</
Style
>
<
Selectors
>
<
StyleSelector
>
<
Type
>ReportItemBase</
Type
>
<
StyleName
>Caption</
StyleName
>
</
StyleSelector
>
</
Selectors
>
</
StyleRule
>
<
StyleRule
>
<
Style
Color
=
"Black"
VerticalAlign
=
"Middle"
>
<
Font
Name
=
"Tahoma"
Size
=
"10pt"
Style
=
"Regular"
/>
</
Style
>
<
Selectors
>
<
StyleSelector
>
<
Type
>ReportItemBase</
Type
>
<
StyleName
>Data</
StyleName
>
</
StyleSelector
>
</
Selectors
>
</
StyleRule
>
<
StyleRule
>
<
Style
Color
=
"Black"
VerticalAlign
=
"Middle"
>
<
Font
Name
=
"Tahoma"
Size
=
"8pt"
Style
=
"Regular"
/>
</
Style
>
<
Selectors
>
<
StyleSelector
>
<
Type
>ReportItemBase</
Type
>
<
StyleName
>PageInfo</
StyleName
>
</
StyleSelector
>
</
Selectors
>
</
StyleRule
>
</
StyleSheet
>
<
Groups
>
<
Group
Name
=
"labelsGroup"
>
<
GroupHeader
>
<
GroupHeaderSection
PrintOnEveryPage
=
"True"
Height
=
"0.28125in"
Name
=
"labelsGroupHeader"
>
<
Items
>
<
TextBox
Value
=
"name"
CanGrow
=
"True"
Left
=
"0.02083333in"
Top
=
"0.02083333in"
Width
=
"5.19791667in"
Height
=
"0.20000001in"
Name
=
"nameCaptionTextBox"
StyleName
=
"Caption"
/>
<
TextBox
Value
=
"description"
Angle
=
"0"
CanGrow
=
"True"
Left
=
"5.23958333in"
Top
=
"0.02083333in"
Width
=
"4.46041679in"
Height
=
"0.20000001in"
Name
=
"descriptionCaptionTextBox"
StyleName
=
"Caption"
/>
</
Items
>
</
GroupHeaderSection
>
</
GroupHeader
>
<
GroupFooter
>
<
GroupFooterSection
Height
=
"0.28125in"
Name
=
"labelsGroupFooter"
>
<
Style
Visible
=
"False"
/>
</
GroupFooterSection
>
</
GroupFooter
>
</
Group
>
</
Groups
>
<
Items
>
<
PageHeaderSection
Height
=
"0.28125in"
Name
=
"pageHeader"
>
<
Style
>
<
BorderStyle
Default
=
"Solid"
/>
</
Style
>
</
PageHeaderSection
>
<
PageFooterSection
Height
=
"0.28125in"
Name
=
"pageFooter"
>
<
Items
>
<
TextBox
Value
=
"=NOW()"
Left
=
"0.02083333in"
Top
=
"0.02083333in"
Width
=
"5.19791667in"
Height
=
"0.20000001in"
Name
=
"currentTimeTextBox"
StyleName
=
"PageInfo"
/>
<
TextBox
Value
=
"=PageNumber"
Left
=
"5.23958333in"
Top
=
"0.02083333in"
Width
=
"5.19791667in"
Height
=
"0.20000001in"
Name
=
"pageInfoTextBox"
StyleName
=
"PageInfo"
>
<
Style
TextAlign
=
"Right"
/>
</
TextBox
>
</
Items
>
</
PageFooterSection
>
<
ReportHeaderSection
Height
=
"0.80823493in"
Name
=
"reportHeader"
>
<
Items
>
<
TextBox
Value
=
"Panda Settings"
Left
=
"0in"
Top
=
"0in"
Width
=
"10.45833333in"
Height
=
"0.7874016in"
Name
=
"titleTextBox"
StyleName
=
"Title"
/>
</
Items
>
</
ReportHeaderSection
>
<
ReportFooterSection
Height
=
"0.28125in"
Name
=
"reportFooter"
/>
<
DetailSection
Height
=
"0.28125in"
Name
=
"detail"
>
<
Items
>
<
TextBox
Value
=
"=Fields.name"
CanGrow
=
"True"
Left
=
"0.02083333in"
Top
=
"0.02083333in"
Width
=
"5.19791667in"
Height
=
"0.20000001in"
Name
=
"nameDataTextBox"
StyleName
=
"Data"
/>
<
TextBox
Value
=
"=Fields.description"
Angle
=
"0"
CanGrow
=
"True"
Left
=
"5.23958333in"
Top
=
"0.02083333in"
Width
=
"4.46041679in"
Height
=
"0.20000001in"
Name
=
"descriptionDataTextBox"
StyleName
=
"Data"
/>
</
Items
>
</
DetailSection
>
</
Items
>
</
Report
>
Where am I going wrong?