Как обрабатываются непостоянные данные в DevExpress XAF?

#c# #devexpress #xaf

#c# #devexpress #xaf

Вопрос:

Мне нужно создать несколько запросов, и эти запросы будут использоваться для создания графиков на панели мониторинга. Запросы представляют собой множество вычислений и являются непостоянными классами.

Сначала я создал класс, и только для этого у меня есть HPerformance_ListView и HPerformance_DetailView, но у меня нет поставщика данных для его заполнения. Система пытается заполнить его из контекста EF, что невозможно.

 [NavigationItem]
[NonPersistent]
public class HPerformance
{
    public decimal Valor { get; set; }
    public decimal Meta { get; set; }
    public decimal Percentual { get; set; }
}
  

И класс запроса

 public class MetasVendas
{
    public MetasVendas()
    {
        fromDate = DateTime.Now.AddMonths(-1);
        toDate = DateTime.Now;
        revenda = 0;
    }

    public DateTime fromDate { get; set; }
    public DateTime toDate { get; set; }
    public long revenda { get; set; }

    public BindingList<HPerformance> _hPerformance()
    {
        var r = _calculoMetaEValor();

        var rr = r.GroupBy(g => true).Select(s => new HPerformance()
        {
            Valor = s.Sum(v => v.TotalUSacess   v.TotalUSradio),
            Meta = s.Sum(v => v.Meta),
            Percentual = s.Sum(vv => vv.TotalUSacess   vv.TotalUSradio) / s.Sum(vv => vv.Meta)
        });

        return new BindingList<HPerformance>(rr.ToList());
    }
  

В контроллере панели мониторинга это код, с которым я не знаю, как обращаться. Мой пример не работает

 public partial class DashboardDealerGoalExecute : ViewController<DashboardView>
{
    void parametersViewItem_ControlCreated(object sender, EventArgs e)
    {
        DashboardViewItem viewItem = (DashboardViewItem)sender;

        if (viewItem.Id == "HPerformance")
        {
            ListView _hPerformance = (ListView)viewItem.InnerView;

            if (parameters != null amp;amp; parameters.Dealer != null)
            {
                BindingList<HPerformance> hp =
                    new MetasVendas()
                    {
                        fromDate = parameters.FromDate,
                        toDate = parameters.ToDate,
                        revenda = parameters.Dealer.ID
                    }._hPerformance();
                _hPerformance.CurrentObject = hp;
            }
        }
  

HPerformance является элементом панели мониторинга и связан с HPerformance классом (1-й код). Как мне настроить HPerformance_ListView заполнение _hPerformance() методом?

Спасибо, Марко Кастро

Комментарии:

1. Привет, где вы можете решить свою проблему?

2. Для этой цели вам необходимо использовать domainComponent . Подробная информация: docs.devexpress.com/eXpressAppFramework/116516/concepts /…