Суммирование цифр в PivotViewer - PullRequest
0 голосов
/ 17 мая 2011

Я создаю приложение PivotViewer для отображения истории продаж филиалов магазина для предприятий розничной торговли.

Мы создаем динамические коллекции из базы данных SQL при открытии приложения. Запрос sql группирует суммы продаж по месяцам.

Приложения pivotViewer отображают каждую ветвь и связанную с ней историю продаж. однако, поскольку объем продаж сгруппирован по месяцам, мы получаем 12 различных изображений магазина в поле результатов. Это делает результаты бессмысленными.

Например, если пользователь выбирает магазин Chadstone и историю продаж за январь, февраль и март, в поле результатов отображаются 3 разных изображения. Вместо этого мы хотели бы, чтобы он показывал 1 результат с цифрами за каждый месяц, суммированными за год.

Я провел некоторое исследование, и, похоже, Pivot Viewer только читает строки из коллекции и не может выполнить какие-либо вычисления.

Кто-нибудь знает, правда ли это или как это можно решить?

Спасибо

Ответы [ 3 ]

0 голосов
/ 08 июля 2011

Для этого вам нужно будет добавить дополнительную обработку на стороне сервера (где вы генерируете свой CXML). Это правда, текущий PivotViewer - это просто зритель. Он берет данные, содержащиеся в файле CXML, и отображает их вместе с изображением глубокого увеличения, связанным с ним.

Таким образом, чтобы справиться с вашей ситуацией, вам необходимо обработать ваш запрос перед генерацией CXML или вашего изображения. Затем вы можете сгруппировать ваши элементы в этой точке и добавить любое суммирование, которое вам нужно. Вам просто нужно помнить, что вы отображаете только то, что находится в CXML, но вы можете поместить в него все, что захотите.

Что касается SL5, у вас все равно не будет никаких расчетов. Вы сможете использовать коллекции объектов более стандартным способом «ItemsSource», но он все равно будет отображать, что находится в этих данных. Однако, как и в CXML, вы можете объединять свои ежемесячные данные в один объект и отображать его за пределами этого объекта.

Tony

0 голосов
/ 09 ноября 2011

Я подключил обработчик событий к измененному свойству и сделал следующее ... Я использовал это, чтобы добавить 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?
            */

        }
     }
  }
0 голосов
/ 17 мая 2011

К сожалению, элемент управления PivotViewer в настоящее время не поддерживает эту возможность. Я думаю, что с возможностью выполнения и отображения результатов вычислений элемент управления PivotViewer был бы идеальным для визуализации данных вместо отчетов. К сожалению, это недостающий фрагмент головоломки, и я не нашел никакого работоспособного способа реализации такого поведения (это очень закрытый элемент управления, к которому сложно добавить функциональность). Я потратил немного времени на попытки, а потом решил, что это невозможно. PivotViewer должен стать основным элементом управления в Silverlight 5, и я ожидал, что будет добавлено много функциональных возможностей, возможно, с учетом такого сценария. Однако многие анонсированные функции Silverlight 5 были исключены из текущей бета-версии, и это одна из них. Нам нужно будет скрестить пальцы, чтобы возможность реализовать это была доступна, когда она будет обновлена ​​для Silverlight 5 (скорее всего, для Silverlight 5 beta 2).

Chris

...