2014-02-18 65 views
1

我是RDLC報告新手,我的要求很簡單。 我設計了一個報告,並在該報告中設置了一些參數來填充動態數據。RDLC動態表綁定

現在我有要求動態顯示錶。 所以我做了什麼:

DataSet InvoiceSummaryDs = new DataSet(); 
        DataTable table = new DataTable(); 
        table.TableName = "summary"; 
        table.Columns.Add("name", typeof(string)); 
        table.Rows.Add(Invoice.TotalBooking); 
        table.Rows.Add("£ " + Invoice.BillAmount); 
        table.Rows.Add("£ " + Invoice.BillAmount + " <br />" + "£ " + Invoice.VatAmount); 
        table.Rows.Add("£ " + Invoice.NetAmount); 

        InvoiceSummaryDs.Tables.Add(table); 

        ReportDataSource rptDataSource = new ReportDataSource("DSPrice", InvoiceSummaryDs.Tables[0]); 
        rv.LocalReport.DataSources.Add(rptDataSource); 

        rv.LocalReport.SetParameters(parms); 
        rv.LocalReport.Refresh(); 

所以在服務器端代碼沒有問題,但我在報告中得到錯誤: 錯誤13集「DS_NAME」指的是數據源「」不存在。

錯誤14 tablix'Tablix1'在報告正文中,但報告沒有數據集。沒有數據集的報告中不允許使用數據區域。

在rdlc文件中,我創建了一個名稱爲「DSPrice」的數據集,沒有源,因爲我想從服務器端動態地填充數據而不是從這裏。

我已經看到這個例子:

http://www.gotreportviewer.com/ 生成RDLC動態 - 表

在動態表結合是可能thorugh動態報表生成,但我不希望創建動態報告。

任何人指導我有什麼解決方案? 任何幫助,將不勝感激。

回答

2

最後,我自己解決了這個問題。

我的要求的簡短摘要: 我想將數據集從代碼綁定到我的RDLC報表。

當我在RDLC報告裏面創建表時,它給了我上面提到的錯誤提供表的數據源,我弄糊塗了爲什麼?我需要從C#編碼中設置它。

然後我才知道RDLC報告不知道你是否要從代碼提供數據源,除非你通過編碼創建動態報告,而且我不想創建動態報告。

解決方案:

1)創建具有要從代碼 2傳)該數據集必須具有相同的列名 3)指定該數據集表數據源裏面同名佔位數據集的報告 4)並使用相同的名稱列從編碼 5)通過這種方式你不會得到該錯誤,你可以很容易地從代碼中傳遞動態數據集。