PivotViewer中数字的总和

时间:2011-05-16 23:49:28

标签: silverlight pivotviewer

我正在创建一个PivotViewer应用程序来显示零售企业的商店分支机构的销售历史。

我们正在打开应用程序时从sql数据库创建动态集合。 sql查询按月对销售额进行分组。

pivotViewer应用程序显示每个分支及其相关的销售历史记录金额。但是因为销售额按月分组,我们在结果字段中获得12个不同的商店图像。这使得结果毫无意义。

例如,如果用户选择Chadstone商店以及Jan,Feb和March的销售历史记录,则结果字段显示3个不同的图像。相反,我们希望它显示1个结果,每个月的总和数据。

我做了一些研究,似乎Pivot Viewer只读取集合中的行,无法完成任何计算。

有谁知道这是真的还是如何解决?

由于

3 个答案:

答案 0 :(得分:0)

可悲的是,PivotViewer控件目前不支持此功能。我认为,通过执行和显示计算结果的能力,PivotViewer控件非常适合用于可视化数据而不是报告。不幸的是,它是一个缺失的难题,我没有找到任何可行的方式来实现这种行为(它是一个非常锁定的控制,很难添加功能)。我花了一些时间尝试,然后认为这是不可行的。 PivotViewer将成为Silverlight 5中的核心控件,我期待添加许多功能,希望允许这种情况。但是,许多已公布的Silverlight 5功能都被排除在目前的测试版之外,这是其中之一。我们需要指出,当Silverlight 5(可能是Silverlight 5 beta 2)更新时,可以实现这一功能。

克里斯

答案 1 :(得分:0)

要实现此目的,您将不得不在服务器端(生成CXML的位置)添加其他处理。确实,目前的PivotViewer只是一个观众。它接收CXML文件中的数据,并使用链接到它的深度缩放图像显示它。

因此,为了处理您的情况,您需要在生成CXML或图像之前处理查询。然后,您可以在该点对您的项目进行分组,并添加您需要的任何总和。您只需要记住,您只显示CXML中的内容,但您可以在CXML中放置任何内容。

就SL5而言,您本身仍然无法进行任何计算。您将能够以更标准的“ItemsSource”类型的方式使用对象集合,但它仍将显示该数据中的内容。但是,与CXML一样,您可以将每月数据合并到一个对象中并显示该对象。

答案 2 :(得分:0)

我将一个事件处理程序连接到更改的属性并执行以下操作...我使用它将Pins添加到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?
            */

        }
     }
  }