Ejemplo n.º 1
0
        private SimpleReport Pivot(SimpleReport simpleReport, PivotType pivotType)
        {
            var crossTabHeaders = pivotType == null
                ? new ReportColumn[0]
                : pivotType.GetCrosstabHeaders(simpleReport.Columns);
            var groupByColumns = pivotType == null
                ? new ReportColumn[0]
                : pivotType.GetGroupByColumns(simpleReport.Columns);

            foreach (ReportColumn id in crossTabHeaders)
            {
                groupByColumns.Remove(id);
            }
            var normalColumns   = new List <ReportColumn>();
            var crossTabColumns = new List <ReportColumn>();

            foreach (ReportColumn id in simpleReport.Columns)
            {
                Type   table;
                String column;
                Schema.Resolve(id.Table, id.Column, out table, out column);
                if (pivotType != null && pivotType.IsCrosstabValue(table, column))
                {
                    crossTabColumns.Add(id);
                }
                else
                {
                    normalColumns.Add(id);
                }
            }
            if (crossTabColumns.Count == 0)
            {
                return(simpleReport);
            }
            return(new PivotReport
            {
                Columns = normalColumns,
                GroupByColumns = new List <ReportColumn>(groupByColumns),
                CrossTabHeaders = crossTabHeaders,
                CrossTabValues = crossTabColumns
            });
        }
Ejemplo n.º 2
0
        private SimpleReport Pivot(SimpleReport simpleReport, PivotType pivotType)
        {
            var crossTabHeaders = pivotType == null
                ? new ReportColumn[0]
                : pivotType.GetCrosstabHeaders(simpleReport.Columns);
            var groupByColumns = pivotType == null
                ? new ReportColumn[0]
                : pivotType.GetGroupByColumns(simpleReport.Columns);

            foreach (ReportColumn id in crossTabHeaders)
            {
                groupByColumns.Remove(id);
            }
            var normalColumns = new List<ReportColumn>();
            var crossTabColumns = new List<ReportColumn>();
            foreach (ReportColumn id in simpleReport.Columns)
            {
                Type table;
                String column;
                Schema.Resolve(id.Table, id.Column, out table, out column);
                if (pivotType != null && pivotType.IsCrosstabValue(table, column))
                {
                    crossTabColumns.Add(id);
                }
                else
                {
                    normalColumns.Add(id);
                }
            }
            if (crossTabColumns.Count == 0)
            {
                return simpleReport;
            }
            return new PivotReport
                       {
                           Columns = normalColumns,
                           GroupByColumns = new List<ReportColumn>(groupByColumns),
                           CrossTabHeaders = crossTabHeaders,
                           CrossTabValues = crossTabColumns
                       };
        }