public ComputeTotalValuesEventArgs(ConfigTotalValues configTotalValues, object row, string group, IExportColumn column)
 {
     ConfigTotalValues = configTotalValues;
     Row    = row;
     Group  = group;
     Column = column;
 }
 public TotalValuesEventArgs(ConfigTotalValues configTotalValues, string group, IExportColumn column, string totalRowFilter)
 {
     ConfigTotalValues = configTotalValues;
     Group             = group;
     Column            = column;
     TotalRowFilter    = totalRowFilter;
 }
        public static ConfigTotalValues Total(this JournalExportEventArgs args, IEnumerable <GridColumn> columns)
        {
            var agg = new AggregateDataSimple();
            var configTotalValues = new ConfigTotalValues {
                Aggregate = agg
            };

            args.ComputeTotalValue = (r, group, column) =>
            {
                if (configTotalValues.ComputeTotalValue(r, group, column))
                {
                    return;
                }

                if (!column.IsNumericColumn)
                {
                    return;
                }

                var aggregateType = GetAggType(column as GridColumn);
                if (aggregateType == ColumnAggregateType.None)
                {
                    return;
                }

                var row      = (BaseRow)r;
                var strValue = column.GetValue(row);
                if (string.IsNullOrEmpty(strValue))
                {
                    return;
                }

                var value    = Convert.ToDouble(strValue);
                var groupAgg = agg.GetChildGroup(column.ColumnName);
                groupAgg.StrValue      = column.ColumnName;
                groupAgg.AggregateType = aggregateType;
                Aggregate(groupAgg, value);

                groupAgg = groupAgg.GetChildGroup(group);
                groupAgg.AggregateType = aggregateType;
                groupAgg.StrValue      = group;
                Aggregate(groupAgg, value);

                var rowAgg = groupAgg.GetChildGroup(row.Value);
                rowAgg.StrValue = strValue;
                Aggregate(rowAgg, value);
                rowAgg.Value = value;
            };
            args.GetTotalValue = (group, column, totalRowFilter) =>
            {
                if (configTotalValues.HasTotalValue(column))
                {
                    return(configTotalValues.GetTotalValue(group, column, totalRowFilter));
                }

                if (!column.IsNumericColumn)
                {
                    return(null);
                }

                var gridColumn = (GridHtmlGenerator.Column)column;
                var value      = configTotalValues.GetTotalValue(group, column.ColumnName);
                return(string.Format(gridColumn.Format ?? "{0}", value));
            };

            return(configTotalValues);
        }
 public double?GetTotalValue(string group, string column)
 {
     return(ConfigTotalValues.GetTotalValue(group, column));
 }
 public double?GetTotalValue(string group, IExportColumn column)
 {
     return(ConfigTotalValues.GetTotalValue(group, column.ColumnName));
 }