2011-05-16 71 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? 
      */ 

     } 
    } 
    }