Пример #1
0
        public void AddColumnHeader()
        {
            var newColumns = GetSelectedProperties()
                             .Select(pd => new PivotSpec.Column(ColumnId.GetColumnId(pd)).ChangeVisible(false));

            PivotSpec = PivotSpec.ChangeColumnHeaders(PivotSpec.ColumnHeaders.Concat(newColumns));
        }
Пример #2
0
        public void AddValue()
        {
            var aggregateOperation = comboAggregateOp.SelectedItem as AggregateOperation;

            if (aggregateOperation == null)
            {
                return;
            }
            var newColumns = GetSelectedProperties()
                             .Select(pd => new PivotSpec.AggregateColumn(ColumnId.GetColumnId(pd), aggregateOperation));

            PivotSpec = PivotSpec.ChangeValues(PivotSpec.Values.Concat(newColumns));
        }
Пример #3
0
        public static PivotedRows GroupAndTotal(CancellationToken cancellationToken, DataSchema dataSchema,
                                                PivotSpec pivotSpec, PivotedRows input)
        {
            if (pivotSpec.IsEmpty)
            {
                return(input);
            }
            var groupAndTotaller = new GroupAndTotaler(cancellationToken, dataSchema, pivotSpec, input.ItemProperties);
            var newProperties    = new List <DataPropertyDescriptor>();
            var newRows          = ImmutableList.ValueOf(groupAndTotaller.GroupAndTotal(input.RowItems, newProperties));

            return(new PivotedRows(newRows, newProperties));
        }
Пример #4
0
 private void RowHeadersOnColumnsMoved(IList <int> ints)
 {
     PivotSpec = PivotSpec.ChangeRowHeaders(ints.Select(i => PivotSpec.RowHeaders[i]));
 }
Пример #5
0
 private void ColumnHeadersListOnColumnsMoved(IList <int> ints)
 {
     PivotSpec = PivotSpec.ChangeColumnHeaders(ints.Select(i => PivotSpec.ColumnHeaders[i]));
 }
Пример #6
0
 private void ValuesListOnColumnsMoved(IList <int> ints)
 {
     PivotSpec = PivotSpec.ChangeValues(ints.Select(i => PivotSpec.Values[i]));
 }
Пример #7
0
        public void AddRowHeader()
        {
            var newColumns = GetSelectedProperties().Select(pd => new PivotSpec.Column(ColumnId.GetColumnId(pd)));

            PivotSpec = PivotSpec.ChangeRowHeaders(PivotSpec.RowHeaders.Concat(newColumns));
        }
Пример #8
0
        public GroupAndTotaler(CancellationToken cancellationToken, DataSchema dataSchema, PivotSpec pivotSpec, IEnumerable <DataPropertyDescriptor> itemProperties)
        {
            CancellationToken = cancellationToken;
            DataSchema        = dataSchema;
            var columnsByDisplayName = itemProperties.ToLookup(ColumnId.GetColumnId);

            RowHeaders = ImmutableList.ValueOf(pivotSpec.RowHeaders.SelectMany(
                                                   col => columnsByDisplayName[col.SourceColumn]
                                                   .Select(pd => Tuple.Create(pd, ColumnCaption.ExplicitCaption(col.Caption) ?? ColumnCaption.GetColumnCaption(pd)))));
            ColumnHeaders = ImmutableList.ValueOf(pivotSpec.ColumnHeaders.SelectMany(
                                                      col => columnsByDisplayName[col.SourceColumn]));
            AggregateColumns = ImmutableList.ValueOf(pivotSpec.Values.SelectMany(
                                                         col => columnsByDisplayName[col.SourceColumn]
                                                         .Select(pd => Tuple.Create(pd,
                                                                                    ColumnCaption.ExplicitCaption(col.Caption) ??
                                                                                    col.AggregateOperation.QualifyColumnCaption(ColumnCaption.GetColumnCaption(pd)),
                                                                                    col.AggregateOperation))));
        }