2013-08-05 58 views
0

我Flex中有一個數組集合,它看起來像: -的Flex PieSeries將組由標籤

public var expenses:ArrayCollection = new ArrayCollection([ 
     { Expense:"Taxes", Amount:2000 }, 
     { Expense:"Rent", Amount:1000 }, 
     { Expense:"Taxes", Amount:1000 }, 
     { Expense:"Food", Amount:1000 }, 
     { Expense:"Food", Amount:200 } ]); 

現在PieSeries將有數據提供程序設置爲「費用」與現場指向「金額」和labelField屬性指向「花費'。這裏的問題是,我得到了5個餅圖切片而不是3個(當我們認爲PieSeries會將dataProvider中存在的任何內容轉儲到UI時,這是正確的)。

有沒有一種方法可以將這些數據分組?也許通過修改dataFunction和labelFunction? 我期望的是3片顯示價值淨收益 - {稅:3000,出租:1000,食品:1200} - 類似於GROUP BY標籤?

回答

1

也有同樣的問題在這裏:How do I display grouped XML data in a Flex pie chart?

如果不工作了,我會預處理輸入數據並創建獨特的標籤一個新的數據提供程序和值的總和。這將增加自定義分組和數據功能的複雜程度要簡單得多。

+0

嗨克里斯,感謝您的意見。我確實看到了這個問題,但它使事情變得非常複雜。我基本上是在繪製與餅圖旁邊顯示的數據網格相同的數據。兩次提取相同的數據將是一個矯枉過正的問題。我能想到的另一個低效率的方法是迭代整個數據集,計算標籤存在的時間。無論如何,我可以創建一個自定義渲染器或類似的東西,以便餅圖可以將具有相同標籤的所有值組合在一起? – Rohan

+0

我不認爲迭代集合並創建新的dataprovider效率不高,但這當然取決於原始集合的大小。我會試着說實話。自定義渲染器會帶您另一條複雜的路線。 –