Example #1
0
        private DataTable getPivotedTable(DataTable table, CurveData <TXValue, TYValue> firstCurve)
        {
            const string tableNameSuffix = " Pivoted";

            if (firstCurve == null)
            {
                return(new DataTable(tableNameSuffix));
            }

            var pivoter    = new Pivoter();
            var dataFields = GetDataFields(firstCurve);
            var aggregate  = new Aggregate <float, float>
            {
                Aggregation = floats => floats.FirstOrDefault(),
                Name        = dataFields.Count == 1 ? dataFields[0] : string.Empty
            };

            var pivotInfo = new PivotInfo(rowFields: GetRowFields(firstCurve),
                                          dataFields: dataFields,
                                          columnFields: new[] { PANE_CAPTION, CURVE_CAPTION },
                                          aggregates: new[] { aggregate });

            var pivotTable = pivoter.PivotData(table.DefaultView, pivotInfo);

            pivotTable.TableName += tableNameSuffix;

            //purge empty columns
            foreach (var column in getEmptyColumns(pivotTable))
            {
                pivotTable.Columns.Remove(column);
            }

            PerformSpecificTransformationOnPivotedTable(pivotTable);
            return(pivotTable);
        }
Example #2
0
        public override string TeXChunk(PivotTable table)
        {
            var captionText = _builderRepository.ChunkFor(table.Caption);
            var pivoter     = new Pivoter();
            var pivotData   = pivoter.PivotData(table.Data, table.PivotInfo);

            return(TableWriter.PivotTable(captionText, table.Label, pivotData.DefaultView, table.Data.Table, table.PivotInfo, table.TexTranslations, table.Converter, _builderRepository));
        }