2017-04-04 207 views
2

我有一個對象列表,其成員各有一個對象列表。例如,給出以下2類:以清單列表作爲其數據源的RDLC報告

Class Phone 
string AreaCode 
string Description 
string Number 

Class Employee 
string FirstName 
string LastName 
List<Phone> Phones 

然後我有多個員工,每個與多個手機:

List<Employee> Employees 

我與創建一個RDLC報告列出的數據負責。該格式將類似於:

名     姓      Phone.Description-1       Phone.Description-2     ...     Phone.Description-N
名字         名字         電話。數-1                       Phone.Number-2                     ...     Phone.Number正
姓         名字          Phone.Number-1                       Phone.Number-2                     ...     Phone.Number正
姓         姓氏          Phone.Number-1                       Phone.Number-2                     ...     Phone.Number正

我不不知道有多少電話(在這個例子中)將從數據庫中返回。

請注意電話上方的標頭。數列也從

List<Phone> 

雖然這些都是從數據庫中還有,他們將橫跨

List<Employee>.List<Phone> 

(即Employee1-電話1,和Employee2-電話1,和Employee3-的所有成員一樣Phone1將具有相同的Phone1標頭)。

我可以使用

List<Employee> 

爲數據源創建一個RDLC報告,但一直無法找到一種方法,然後在同一行納入

List<Employee>.List<Phone> 

其父員工。

這是RDLC矩陣中可行嗎?或者是否有可以使用的「自動生成列」類型的功能?

感謝您提供任何幫助/方向/建議。

附錄: 我應該指出,從數據庫返回的DataSet完全是我需要的格式。但是,由於我不知道將返回多少「手機」列,因此我沒有可定義的模式,因此我無法在設計器中創建報告。同樣的道理,我不能以編程方式將數據源設置爲DataSet,因爲在報告中沒有定義模式/網格。

+0

手機數量是否有限制?如果不是,我會建議你將手機作爲行包含並使用層次結構。你也可以詳細說明你的情況嗎?報告顯示在哪裏?控制檯程序? Web應用程序 ? –

+0

謝謝。我想,我沒有包括應用程序類型,因爲我認爲它不重要。但是,這是一個替代控制檯應用程序的MVC應用程序。它使用控制檯應用程序的存儲過程。數據完全按照控制檯網格預期的方式返回。我不知道每個「員工」會包含多少「電話」列(我不知道這是一個很好的例子)。那麼,您建議的員工名單中,每個員工都有一個電話號碼(大量重複的員工數據)?然後可以將它們彙總爲一個Tablix,每行都是唯一的員工數據,然後是未知數量的電話列? – Metallicraft

+0

準確。只有其他選項是奇怪的 - 例如隨時生成rldc xml文件/流並添加您在數據集中看到的所有列。請參閱http://stackoverflow.com/questions/28898087/generate-columns-dynamically-in-rdlc以供參考。 –

回答

0

動態列可能會非常棘手 - 特別是因爲您對個人姿態的手機數量沒有限制。有辦法解決這個問題 - 比如通過提供報告的應用程序即時生成/調整rdlc xml文件/流。更多這樣的引用在這裏可以Generate columns dynamically in RDLC

發現我想建議,而不是與電話號碼和使用體系(表矩陣)與員工的數據是「父」和電話數據是「子」右加入的員工。

+0

再次感謝您的幫助 – Metallicraft