Exemple #1
0
        private void ThongKe(Define.LoaiThongKeEnum thongKe)
        {
            if (!_isLoaded)
            {
                ReloadData();
            }

            // Reset all group
            HideReportColumn();

            gridViewHangHoa.Columns[thongKe.ToString()].Visible = true;
            gridViewHangHoa.Columns[thongKe.ToString()].Group();

            if (!_cacheThongKe.ContainsKey(thongKe))
            {
                var result = new List <object>();

                var groupBy = _lstThongKe.GroupBy(s => s.Ngay.ToString());
                if (thongKe == Define.LoaiThongKeEnum.Thang)
                {
                    groupBy = _lstThongKe.GroupBy(s => s.Thang.ToString());
                }
                if (thongKe == Define.LoaiThongKeEnum.Nam)
                {
                    groupBy = _lstThongKe.GroupBy(s => s.Nam.ToString());
                }
                if (thongKe == Define.LoaiThongKeEnum.Quy)
                {
                    groupBy = _lstThongKe.GroupBy(s => s.Quy);
                }

                foreach (var thoigian in groupBy)
                {
                    var groupByNoiDung = thoigian.GroupBy(s => s.NoiDung).ToList();
                    var groupByTime    = thoigian.FirstOrDefault();
                    foreach (var noiDung in groupByNoiDung)
                    {
                        var grouped = noiDung.First().Clone();
                        grouped.SoLuongNhap = noiDung.Sum(s => s.SoLuongNhap);
                        grouped.SoLuongXuat = noiDung.Sum(s => s.SoLuongXuat);
                        grouped.Thu         = noiDung.Sum(s => (long)s.Thu);
                        grouped.Chi         = noiDung.Sum(s => (long)s.Chi);
                        grouped.NgaySort    = groupByTime.NgaySort;
                        result.Add(grouped);
                    }
                }
                _cacheThongKe.Add(thongKe, result);
            }

            gridControlHangHoa.DataSource = _cacheThongKe[thongKe];
        }
Exemple #2
0
 private void tileItemNam_ItemClick(object sender, DevExpress.XtraEditors.TileItemEventArgs e)
 {
     _loaiThongKe = Define.LoaiThongKeEnum.Nam;
     ThongKe(_loaiThongKe);
 }