add: subTotals to group output field
This commit is contained in:
parent
649f79b000
commit
b0354c4435
2 changed files with 16 additions and 5 deletions
|
@ -150,6 +150,9 @@ class Report(Template):
|
||||||
result.append([f for f in self.fields if gf.name in f.totals])
|
result.append([f for f in self.fields if gf.name in f.totals])
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def getOutputFieldsForField(self, field):
|
||||||
|
return [f for f in self.fields if f.name == field.output]
|
||||||
|
|
||||||
|
|
||||||
class BaseQueryCriteria(Component):
|
class BaseQueryCriteria(Component):
|
||||||
|
|
||||||
|
|
|
@ -118,12 +118,13 @@ class ResultSet(object):
|
||||||
headerRow.headerColumns.append(headerColumn)
|
headerRow.headerColumns.append(headerColumn)
|
||||||
return headerRow
|
return headerRow
|
||||||
|
|
||||||
def getSubTotalsRow(self, row, columns, values, dcolumns):
|
def getSubTotalsRow(self, idx, row, columns, values, dcolumns):
|
||||||
subTotalsRow = SubTotalsRow(None, self)
|
subTotalsRow = SubTotalsRow(None, self)
|
||||||
for idx, c in enumerate(columns):
|
for idx, c in enumerate(columns):
|
||||||
subTotalsRow.data[c.name] = values[idx]
|
subTotalsRow.data[c.name] = values[idx]
|
||||||
for c in dcolumns:
|
if idx > 1:
|
||||||
subTotalsRow.data[c.output] = u'SUMME: ' + c.getRawValue(row)
|
for c in dcolumns:
|
||||||
|
subTotalsRow.data[c.output] = u'SUMME: ' + c.getRawValue(row)
|
||||||
return subTotalsRow
|
return subTotalsRow
|
||||||
|
|
||||||
def getResult(self):
|
def getResult(self):
|
||||||
|
@ -147,11 +148,15 @@ class ResultSet(object):
|
||||||
if value != groupValues[idx]:
|
if value != groupValues[idx]:
|
||||||
groupValues[idx] = value
|
groupValues[idx] = value
|
||||||
headerRows.append(self.getHeaderRow(row, (f,) + f.outputWith))
|
headerRows.append(self.getHeaderRow(row, (f,) + f.outputWith))
|
||||||
|
outputColumns = f.outputWith
|
||||||
|
if not outputColumns:
|
||||||
|
outputColumns = self.getOutputColumnsForField(f)
|
||||||
subTotalsRows.append(
|
subTotalsRows.append(
|
||||||
self.getSubTotalsRow(lastRow,
|
self.getSubTotalsRow(idx,
|
||||||
|
lastRow,
|
||||||
self.subTotalsColumns[idx],
|
self.subTotalsColumns[idx],
|
||||||
subTotals[idx],
|
subTotals[idx],
|
||||||
f.outputWith))
|
outputColumns))
|
||||||
subTotals[idx] = [0.0 for f in self.subTotalsColumns[idx]]
|
subTotals[idx] = [0.0 for f in self.subTotalsColumns[idx]]
|
||||||
for subTotalsRow in reversed(subTotalsRows):
|
for subTotalsRow in reversed(subTotalsRows):
|
||||||
res.append(subTotalsRow)
|
res.append(subTotalsRow)
|
||||||
|
@ -194,3 +199,6 @@ class ResultSet(object):
|
||||||
def subTotalsColumns(self):
|
def subTotalsColumns(self):
|
||||||
return self.context.getSubTotalsFields()
|
return self.context.getSubTotalsFields()
|
||||||
|
|
||||||
|
def getOutputColumnsForField(self, f):
|
||||||
|
return self.context.getOutputFieldsForField(f)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue