public void GetSummary(GridViewCustomBindingGetSummaryValuesArgs e)
 {
     //            var filter = Persons.ApplyFilter(e.FilterExpression).ApplyFilter(e.GroupInfoList);
     //            var calculateSummary = filter.CalculateSummary(e.SummaryItems);
     //            e.Data = calculateSummary;
     //            var countSummaryItem = e.SummaryItems.FirstOrDefault(state => state.SummaryType == SummaryItemType.Count);
     //            if (e.GroupInfoList.Count == 0 && countSummaryItem != null)
     //            {
     //                var indexOf = e.SummaryItems.IndexOf(countSummaryItem);
     //                var count = calculateSummary[indexOf] != null ? Convert.ToInt32(calculateSummary[indexOf]) : 0;
     //                GridViewCustomBindingSummaryCache.SaveCount(e.FilterExpression, count);
     //            }
 }
示例#2
0
        public void GetSummaryValuesAdvanced(GridViewCustomBindingGetSummaryValuesArgs e)
        {
            var query = Model
                        .ApplyFilter(e.FilterExpression)
                        .ApplyFilter(e.GroupInfoList);

            var summaryValues = query.CalculateSummary(e.SummaryItems);

            e.Data = summaryValues;

            var countSummaryItem = e.SummaryItems.FirstOrDefault(i => i.SummaryType == SummaryItemType.Count);

            if (e.GroupInfoList.Count == 0 && countSummaryItem != null)
            {
                var itemIndex = e.SummaryItems.IndexOf(countSummaryItem);
                var count     = summaryValues[itemIndex] != null?Convert.ToInt32(summaryValues[itemIndex]) : 0;

                GridViewCustomBindingSummaryCache.SaveCount(e.FilterExpression, count);
            }
        }
        public void GetSummaryValues(GridViewCustomBindingGetSummaryValuesArgs e)
        {
            XPView data = new XPView(Session, ClassInfo);

            data.Criteria = CriteriaOperator.Parse(e.FilterExpression) & GetGroupFilter(e.GroupInfoList);
            foreach (GridViewSummaryItemState summaryItem in e.SummaryItems)
            {
                Aggregate        aggregateType        = GetAggregateType(summaryItem.SummaryType);
                CriteriaOperator aggregatedExpression = new OperandProperty(summaryItem.FieldName);
                CriteriaOperator property             = new AggregateOperand(null, aggregatedExpression, aggregateType, null);
                string           name = string.Concat(summaryItem.FieldName, summaryItem.SummaryType);
                data.AddProperty(name, property);
            }
            ArrayList  result = new ArrayList();
            ViewRecord rec    = data[0];

            for (int i = 0; i < data.Properties.Count; i++)
            {
                result.Add(rec[i]);
            }
            e.Data = result;
        }
        public static void GetSummaryValuesAdvanced(GridViewCustomBindingGetSummaryValuesArgs e)
        {
            var query = Model
                        .ApplyFilter(e.State.FilterExpression)
                        .ApplyFilter(e.GroupInfoList);
            var list = new ArrayList();

            foreach (var item in e.SummaryItems)
            {
                switch (item.SummaryType)
                {
                case SummaryItemType.Count:
                    list.Add(query.Count());
                    break;

                case SummaryItemType.Sum:
                    list.Add(query.Sum(item.FieldName));
                    break;
                }
            }
            e.Data = list;
        }
示例#5
0
        public static void GetSummaryValuesAdvanced(GridViewCustomBindingGetSummaryValuesArgs e)
        {
            var query = Model
                        .ApplyFilter(e.State.AppliedFilterExpression)
                        .ApplyFilter(e.GroupInfoList);
            var list = new ArrayList();

            foreach (var item in e.SummaryItems)
            {
                switch (item.SummaryType)
                {
                case SummaryItemType.Count:
                    list.Add(query.Count());
                    break;

                default:
                    string summaryString = Enum.GetName(typeof(SummaryItemType), item.SummaryType);
                    list.Add(query.CountSummary(item.FieldName, summaryString));
                    break;
                }
            }
            e.Data = list;
        }
示例#6
0
        public virtual void GetGridViewSummaryValues(GridViewCustomBindingGetSummaryValuesArgs e)
        {
            var result = DB.Execute((db, w) =>
            {
                var query = Query(w)
                            .ApplyFilter(PrepareFilterExpression(e.FilterExpression))
                            .ApplyFilter(PrepareGroupInfoList(e.GroupInfoList));

                List <GridViewSummaryItemState> summaryItems = e.SummaryItems;
                var summaryValues = query.CalculateSummary(PrepareSummaryItems(summaryItems));

                var countSummaryItem = summaryItems.FirstOrDefault(i => i.SummaryType == SummaryItemType.Count);
                if (e.GroupInfoList.Count == 0 && countSummaryItem != null)
                {
                    var itemIndex = summaryItems.IndexOf(countSummaryItem);
                    var count     = summaryValues[itemIndex] != null ? Convert.ToInt32(summaryValues[itemIndex]) : 0;
                    CacheSaveCount(e.FilterExpression, count);
                }

                return(summaryValues);
            });

            e.Data = result;
        }