diff --git a/composer/report/field.py b/composer/report/field.py index 3d47d7d..9bb807c 100644 --- a/composer/report/field.py +++ b/composer/report/field.py @@ -82,6 +82,8 @@ class Field(Component): style = TableCellStyle() cssClass = '' totals = [] + groupHeaderColspan = None + groupHeaderHidden = False executionSteps = ['query', 'sort', 'output'] # , 'totals'] @@ -128,7 +130,6 @@ class Field(Component): # TODO: consider 'descending' flag return self.getValue(row) - class CalculatedField(Field): def getRawValue(self, row): diff --git a/composer/report/result.py b/composer/report/result.py index ff3b57a..7b27a7e 100755 --- a/composer/report/result.py +++ b/composer/report/result.py @@ -125,6 +125,14 @@ class ResultSet(object): headerColumn.__name__ = c.output headerColumn.cssClass = c.cssClass headerRow.headerColumns.append(headerColumn) + if headerColumn.groupHeaderColspan is not None: + colNames = [col.name for col in self.displayedColumns] + nextColumns = [col for col in self.displayedColumns + if colNames.index(col.name) > colNames.index(c.output)] + for i in range(headerColumn.groupHeaderColspan - 1): + nextColumn = copy(nextColumns[i]) + nextColumn.groupHeaderHidden = True + headerRow.headerColumns.append(nextColumn) return headerRow def getSubTotalsRow(self, gf, row, columns, values):