1

報告查看器預覽顯示爲空,但導出和打印工作正常。Visual Studio 2010本地SSRS報告查看器14預覽爲空,但導出和打印工作正常

我只是在我的智慧'結束了這一點。我需要對現有的SSRS報告進行更改,雖然所有作品似乎都在做他們的工作,但最終的結果是一個空的報告,即使報告查看器正在爲報告提取正確的數據。 (腳註:該報告被稱爲「ByGroup」,但我將其中的部分內容更改爲「ByFields」,以確保現有報告可以自行運行。這可能是一些問題的原因,我試圖小心避免這種情況。)

該項目使用在網站的App_Code文件夾中保存的單獨的.xsd文件中聲明的數據表。數據表調用一個存儲過程,並且所有列都存在,並且Fill和GetData方法就位。使用數據表「預覽數據」選項,我們可以驗證數據表是否正確,並返回正確的數據。如果相關,我們可以爲此提供更多數據。

我們報告的.aspx文件對報表查看器14正確的註冊標籤:

<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %> 

我們使用的是鏈接到的TableAdapter定義一個ObjectDataSource:

<asp:ObjectDataSource ID="EventListingByGroup_DataInstance" runat="server" 
    OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" 
    TypeName="AEMSReports.dsAEMSReportsTableAdapters.AEMSReports_056_EventListingByFieldsTableAdapter"> 

<SelectParameters>元素準確聲明提供存儲過程的所有參數。

中的ReportViewer定義如下:

<rsweb:ReportViewer ID="rvEventListingByGroup" runat="server" Font-Names="Verdana" 
    Font-Size="8pt" Height="100%" Width="850px" AsyncRendering="False" 
    ClientIDMode="AutoID" InternalBorderColor="204, 204, 204" InternalBorderStyle="Solid" 
    InternalBorderWidth="1px" ToolBarItemBorderStyle="Solid" ToolBarItemBorderWidth="1px" 
    ToolBarItemPressedBorderColor="51, 102, 153" ToolBarItemPressedBorderStyle="Solid" ToolBarItemPressedBorderWidth="1px" 
    ToolBarItemPressedHoverBackColor="153, 187, 226" > 
    <LocalReport ReportPath="reports\Counts_Listings\EventListingByFields056.rdlc"> 
     <DataSources> 
      <rsweb:ReportDataSource DataSourceId="EventListingByGroup_DataInstance" Name="dsAEMSReports_AEMSReports_056_EventListingByFields" /> 
     </DataSources> 
    </LocalReport> 
</rsweb:ReportViewer> 

在.aspx.cs的Page_Load常規,我們有這樣的代碼:

if (!IsPostBack) 
{ 
    // Set hidden fields on the form for the Select parameters... 
    tbFromDate.Text = Request.Form["txtFromDate"].Trim(); 
    // ...clip... 
    rvEventListingByGroup.Attributes.Add("style", "margin-bottom: 30px;"); 
    rvEventListingByGroup.Visible = true; 

    string[] path = HttpContext.Current.Request.Url.AbsolutePath.Split('/'); 
    string reportPath = ""; 
    int length = path.Length; 
    for (int i = 1; i < length - 1; i++) 
    { 
     if (path[i] == "Reports") 
     { 
      for (int j = i; j < length - 1; j++) 
      { 
       reportPath += path[j] + "/"; 
      } 
     } 
    } 
    rvEventListingByGroup.LocalReport.ReportPath = reportPath + "EventListingByGroup056.rdlc"; 
    rvEventListingByGroup.LocalReport.Refresh(); 
} 

我們報告的.rdlc看起來是這樣的: Our report's .rdlc looks like this 並且得到的輸出如下所示: the resulting output looks like this

我hav使用SQL Server Profiler進行驗證,當Report Viewer加載頁面時,它使用正確的參數調用SQL Server以返回所有必要的數據,但數據不在頁面上呈現。我知道沒有頁腳,也沒有任何設置來管理頁面,所以它總是會讀取「1的1」,直到我解決這個問題,但我期望的是一長頁(在我們的測試案例中)150行值得的原始數據。

任何人都可以提供什麼我可以錯過在這方面的建議?

非常感謝你提前。我們認爲這將是一個簡單的改變,但是自從我們的報告編寫人員(工作人員)離開後,我們正在爲獲得這些更改做好準備,只是沒有必要的技能來支持它們......

+0

我們已驗證導出到Excel和打印選項確實輸出正確的內容,只是查看器不顯示內容。 – Dan

回答

0

我找到了我的答案,感謝this link from social.msdn。我在.aspx文件的ReportViewer聲明中添加了SizeToReportContent="true",並且現在在預覽程序中正確顯示了輸出。沒有它,沒有呈現的內容,事後,它就在那裏!

相關問題