いくつかのクエリを作成する必要があり、これらのクエリはダッシュボードでグラフを作成するために使用されます。クエリは多くの計算であり、非永続的なクラスです。
最初にクラスを作成しましたが、これについてのみ 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 && parameters.Dealer != null)
{
BindingList<HPerformance> hp =
new MetasVendas()
{
fromDate = parameters.FromDate,
toDate = parameters.ToDate,
revenda = parameters.Dealer.ID
}._hPerformance();
_hPerformance.CurrentObject = hp;
}
}
HPerformance
はダッシュボード アイテムであり、HPerformance
クラス (最初のコード) に接続されています。メソッドHPerformance_ListView
ごとに入力されるように設定するにはどうすればよいですか?_hPerformance()
ありがとう、マルコ・カストロ