2013-01-24 86 views
0

我在RDLC報告工作VS2012子報表添加參數

當我想在我的子報告,然後我的報告是不工作添加參數,我得到這個錯誤「錯誤後不能正常工作:小組報告無法顯示「。

並且在添加參數後,該事件LocalReport_SubreportProcessing(對象發件人,SubreportProcessingEventArgs e)甚至沒有被調用。

回答

0

我意識到我遲到了這裏的派對,但是這個問題出現在我的搜索過程中,所以也許這會幫助別人。我終於在我的web應用程序的主要報告中得到了報告。

在Page_Load中

我加

ReportViewer1.LocalReport.SubreportProcessing += new Microsoft.Reporting.WebForms.SubreportProcessingEventHandler(SetSubDataSource); 
this.ReportViewer1.LocalReport.Refresh(); 

然後我添加一個事件

public void SetSubDataSource(object sender, SubreportProcessingEventArgs e) 
{ 
    var report = ((LocalReport)sender).DataSources[0]; 
    var tableid = e.Parameters["tableId"].Values[0]; 
    ObjectDataSource2.SelectParameters[0].DefaultValue = tableid; 
    e.DataSources.Add(new ReportDataSource("DataSet2", ObjectDataSource2)); 
} 

您還需要確保您的主報告的子報告有正確定義的參數和數據以及子報告本身。這適用於使用帶有一個參數的存儲過程,但我認爲一旦正確觸發就可以輕鬆添加額外的參數。我還將子報表數據類型的常規選項設置爲Integer(我的sproc期望的類型),並允許空值以及將默認值設置爲「指定值」並將其保留爲(Null)。

事情終於開始工作時,我加入

<SelectParameters> 
    <asp:Parameter Name="tableId" Type="Int32" /> 
</SelectParameters> 

我的子報表數據源對象的ObjectDataSource2節點內,您的里程可能會有所不同。