示例#1
0
        private List <TotalDispalyRecord> GetTotalDisplayRecords()
        {
            List <TotalDispalyRecord> record = new List <TotalDispalyRecord>();
            TotalDispalyRecord        total  = new TotalDispalyRecord
            {
                AccountName = "总计",
                RecordDate  = DateTime.Now,
                Asset       = 0,
                Debt        = 0,
            };

            if (db.Records == null || db.Records.Count() == 0)
            {
                return(record);
            }


            var list = new List <Record>();

            var s = db.Records.AsEnumerable().GroupBy(x => x.AccountId);
            var e = s.GetEnumerator();

            while (e.MoveNext())
            {
                var r = e.Current.OrderByDescending(y => y.RecordDate).First();
                list.Add(r);
            }

            //s.ToList().ForEach((x) =>
            //{
            //    var r = x.OrderByDescending(y => y.RecordDate).First();
            //    list.Add(r);
            //});

            list.OrderBy(x => x.Account.Priority).ToList().ForEach(r =>
            {
                total.Asset += r.Asset;
                total.Debt  += r.Debt;

                bool zero = r.Real == 0 && r.Asset == 0 && cbHideZero.IsChecked.Value;

                if (!zero)
                {
                    record.Add(new TotalDispalyRecord
                    {
                        RecordDate  = r.RecordDate,
                        Asset       = r.Asset,
                        Debt        = r.Debt,
                        Info        = r.Info,
                        AccountName = r.Account.Name
                    });
                }
            }
                                                                   );
            record.Add(total);
            return(record);
        }
示例#2
0
        private List <TotalDispalyRecord> GetTotalDisplayRecords(DateTime dt)
        {
            List <TotalDispalyRecord> rec   = new List <TotalDispalyRecord>();
            TotalDispalyRecord        total = new TotalDispalyRecord
            {
                AccountName = "总计",
                RecordDate  = dt,
                Asset       = 0,
                Debt        = 0,
            };

            if (db.Records == null || db.Records.Count() == 0)
            {
                return(rec);
            }
            List <TotalDispalyRecord> record = new List <TotalDispalyRecord>();
            var s = db.Records.Where(x => dt.CompareTo(x.RecordDate) > 0).GroupBy(x => x.AccountId);

            s.ToList().ForEach((x) =>
            {
                var r        = x.OrderByDescending(y => y.RecordDate).First();
                total.Asset += r.Asset;
                total.Debt  += r.Debt;
                record.Add(new TotalDispalyRecord
                {
                    RecordDate  = r.RecordDate,
                    Asset       = r.Asset,
                    Debt        = r.Debt,
                    Info        = r.Info,
                    AccountName = r.Account.Name
                });
            });
            record.Add(total);

            record.OrderBy(x => x.AccountName);

            // 排序
            db.Accounts.OrderBy(x => x.Priority).ToList().ForEach(x =>
            {
                rec.Add(record.Find(y => x.Name == y.AccountName));
            });

            return(rec);
        }