0

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

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

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

例如,如果用户选择 Chadstone 商店和 1 月、2 月和 3 月的销售历史,结果字段会显示 3 个不同的图像。相反,我们希望它显示 1 个结果,其中每个月的数字按年份相加。

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

有谁知道这是否属实或如何解决?

谢谢

4

3 回答 3

0

为此,您将不得不在服务器端(生成 CXML 的地方)添加额外的处理。确实,当前的 PivotViewer 就是一个查看器。它获取 CXML 文件中的数据并将其与链接到它的深度缩放图像一起显示。

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

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

托尼

于 2011-07-08T18:42:53.497 回答
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?
            */

        }
     }
  }
于 2011-11-08T23:34:31.603 回答
0

遗憾的是,PivotViewer 控件目前不支持此功能。我认为 PivotViewer 控件具有执行和显示计算结果的能力,非常适合可视化数据来代替报告。不幸的是,这是一个缺失的部分,我还没有找到任何可行的方法来实现这种行为(这是一个非常锁定的控件,很难添加功能)。我花了一些时间尝试,然后认为这是不可行的。PivotViewer 将成为 Silverlight 5 中的核心控件,我期待添加很多功能,希望允许这种情况。然而,Silverlight 5 的许多已宣布的功能都被排除在当前的测试版之外,这就是其中之一。我们'

克里斯

于 2011-05-17T06:26:20.677 回答