1

嗨我需要在SSRS中設置幫助,以正確顯示多個父母中的孩子在層次結構報告。SSRS層次結構遞歸父母 - 子女與多個父母

這就是我所做的。

select * from PCA 

這是PCA表

Parent  Child 
ASSY1  CHILD1  
ASSY1  CHILD2  
CHILD1  ACHILD1 
CHILD1  ACHILLD2 
ACHILD1  BCHILD1 
ACHILD1  BCHILD2 

這是CTE在報表數據集中

WITH tBOM AS(
SELECT Parent,Child, 0 as BOMLevel from PCA A 
WHERE Parent='ASSY1' 
UNION ALL 
SELECT C.Parent, C.Child, BOMLevel+1 from PCA C 
INNER JOIN tBOM on tBOM.Child=C.Parent 
) 
SELECT row_number() over (Order by Parent), * FROM tBOM 

這是SSRS RDL文件中的設置。和我運行它時的報告。 Group by Child,並且我將遞歸父項設置爲父項。我也設置組的可見性,所以我得到加號做下鑽和填充。一切看起來不錯。

enter image description here

填充左設置像這樣:

=20 * Level() & "pt" 

enter image description here

直至:我增加一個排表。

Parent Child 
ASSY1  CHILD1  
ASSY1  CHILD2  
CHILD1  ACHILD1 
CHILD1  ACHILLD2 
ACHILD1  BCHILD1 
ACHILD1  BCHILD2 
**ACHILLD2  BCHILD2** 

我想到的東西下面ACHILLD2 但是,沒有:這是我得到

enter image description here

更多了這一點。如果我添加更多行來增加深度,結果會更不正確。例如,如果我添加了一個孩子BCHILD2,

enter image description here

,而是我得到這個: enter image description here

回答

0

閱讀文章小時。我得出結論:SSRS不能實現我的最終目標。 傷心我知道。但它是個什麼

https://connect.microsoft.com/SQLServer/feedback/details/724449/bug-found-when-using-the-ssrs-recursive-hierarchy-feature-with-multi-parent-relationships

錯誤當使用SSRS遞歸層次結構特徵與 多親關係找到 - 通過MichaelLee

狀態:關閉由設計到設計

的產品團隊 相信這個項目根據其預期的設計工作。

有關此特定項目 的解決方案的更詳細說明可能已在評論部分中提供。

說明

在SSRS報告中,您可以通過這篇文章下面創建向下鑽取 控制遞歸層次: http://msdn.microsoft.com/en-us/library/bb630438(v=SQL.100).aspx

然而,似乎這個功能不能正常工作時, 孩子有多個父母。如果一個孩子有兩個父母,你會想要一個孩子被安置在每個父母之下。相反,該子項僅放置在SQL表中第一個出現的父項下方 。如果 您將額外的列添加到Tablix並將表達式設置爲 '= CountRows(「RowGroupName」,遞歸)「,您會注意到該子項的總計 記錄是2.因此,由於某些原因,兩個記錄都是即 放置在第一個父母的下方,即使其中一個記錄具有 不同的父母。

請注意,在我的情況下,孩子和父母的ID是 uniqueidentifier。

聯繫方式評論(2)|解決方法(3)|附件(0)簽署 要發表評論。發佈者易卜拉欣Achkar在2012年4月20日上午6時10分 你好邁克爾,我也發現了這個錯誤。有關來自Microsoft的 分辨率的任何更新。至於你的解決方法,你是否建議 獲取數據並將其設置在一個新的臨時表中,採用不同的 (1對1關係)格式。有了新的表格,我們仍然需要使用SSRS中的父分組還是 或者需要其他方法?

您的幫助是非常感謝。

謝謝你,易卜拉欣作者:Riccardo [MSFT]於2/13/2012於5:34 PM 感謝您的反饋。我們正在將此錯誤解決爲By Design ,因爲我們將每個組與單個父組關聯。我們不要 將一個組與多個父組關聯(但可以隨意爲此功能創建一個建議)。

爲了進一步解釋預期行爲,我們首先根據GroupExpression或此例中的ChildID字段對數據 進行分組。然後我們評估父表達式,在這種情況下,ParentID字段 爲每個組。由於我們將每個組與單個父項 組相關聯,因此我們需要一個值。當應該返回單個值的表達式指的是具有多個數據行的範圍中的字段時,這種情況僅僅是一個示例 - 行爲是官方未定義的,但實際上,它傾向於像第一個聚合函數一樣行爲, 其中第一個數據行在範圍內。

裏卡爾多穆蒂SQL Server報表服務

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/a65bf4a4-e3b6-4c33-aa9e-6f7d7e4b7f5e/bill-of-materials-recursive-parent-report?forum=sqlreportingservices

嗨duanekae,只是爲了確認,我從來沒有使用 SSRS這個適當的解決方案。我已經結束了使用自定義SQL函數來執行此操作。 我很想讓它在SSRS中工作,因爲這將是一個更容易的解決方案 。2016年1月13日星期三下午04:04引用阿凡達 Alex Lush - Severn Unival Alex Lush - Severn Unival