2011-05-16 44 views
0

我正在創建一個PivotViewer應用程序,以顯示零售企業的商店分支的銷售歷史記錄。PivotViewer中的數字彙總

我們正在打開應用程序時從sql數據庫創建動態集合。 sql查詢按月對銷售額進行分組。

pivotViewer應用程序顯示每個分支及其相關的銷售歷史數量。但是由於銷售額按月份分組,我們在結果字段中獲得了12個不同的商店圖片。這使結果變得毫無意義。

例如,如果用戶選擇Chadstone商店和Jan,Feb和March的銷售歷史記錄,則結果字段會顯示3個不同的圖像。相反,我們希望它顯示1個結果,每個月的數字總和爲年份。

我已經做了一些研究,看起來Pivot Viewer只讀取集合中的行並且無法完成任何計算。

有誰知道這是真的還是如何解決?

感謝

回答

0

可悲的是,PivotViewer控制不支持在目前這種能力。我認爲通過執行和顯示計算結果的能力,PivotViewer控件對於可視化數據來代替報告來說是非常棒的。不幸的是,這是一個難題,我還沒有找到任何可行的方式來實現這種行爲(這是一個非常鎖定的控制,並且很難添加功能)。我花了一些時間嘗試,然後決定這是不可行的。 PivotViewer將成爲Silverlight 5中的核心控件,我期待添加許多功能,希望允許這種場景。然而,許多Silverlight 5的功能都被排除在目前的測試版之外,這就是其中之一。我們需要跨越我們的手指,在Silverlight 5更新(可能使用Silverlight 5 beta 2)時,實現此功能的功能將可用。

克里斯

0

要做到這一點,你將不得不增加在服務器端的額外處理(你在哪裏產生的CXML)。確實,目前的PivotViewer只是一個觀衆。它獲取CXML文件中的數據,並將其與鏈接到它的深度縮放圖像一起顯示。

因此,爲了處理您的情況,您需要在生成CXML或圖像之前處理您的查詢。然後你可以在這一點上分組你的項目,並添加你需要的任何總結。您只需要記住您只顯示CXML中的內容,但您可以在該CXML中放入任何您想要的內容。

就SL5而言,您本身不會有任何計算。您將能夠以更標準的「ItemsSource」類型的方式使用對象集合,但它仍將顯示該數據中的內容。但是,像CXML一樣,您可以將每月數據組合到單個對象中並顯示該對象。

託尼

0

我迷上了一個事件處理程序上改變了性質,做了以下......我用這個引腳添加到Bing地圖,它工作得很好。

void PivotViewer_PropertyChanged(object _Sender, System.ComponentModel.PropertyChangedEventArgs _Args) 
    { 
    if(_Args.PropertyName == "InScopeItemIds") 
    { 
     PivotViewer pivotViewer = (_Sender as PivotViewer); 

     foreach(string isii in pivotViewer.InScopeItemIds) 
     { 
      PivotItem pi = pivotViewer.GetItem(isii); 
      /* 
       Do some work on the items in view? 
      */ 

     } 
    } 
    }