This is a migrated thread and some comments may be shown as answers.

Data shows in Report Designer Preview but does not in Web Viewer

1 Answer 348 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
System
Top achievements
Rank 1
System asked on 23 Jan 2013, 09:32 PM
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:
  • 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">
<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?



1 Answer, 1 is accepted

Sort by
0
Stef
Telerik team
answered on 07 Feb 2013, 08:45 AM
Hi,

The code you have provided runs normally and the report is displayed on the page. Please, find the attached project created with your code snippets and let us know what additional modifications are needed to reproduce the issue. Make sure you have set the connection string in the web.config file, so that the report knows where to pull data from.

Kind regards,
Stef
the Telerik team

HAPPY WITH REPORTING? Do you feel that it is fantastic? Or easy to use? Or better than Crystal Reports? Tell the world, and help fellow developers! Write a short review about Telerik Reporting and Telerik Report Designer in Visual Studio Gallery today!

Tags
General Discussions
Asked by
System
Top achievements
Rank 1
Answers by
Stef
Telerik team
Share this question
or