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])
|
||||
return result
|
||||
|
||||
def getOutputFieldsForField(self, field):
|
||||
return [f for f in self.fields if f.name == field.output]
|
||||
|
||||
|
||||
class BaseQueryCriteria(Component):
|
||||
|
||||
|
|
|
@ -118,12 +118,13 @@ class ResultSet(object):
|
|||
headerRow.headerColumns.append(headerColumn)
|
||||
return headerRow
|
||||
|
||||
def getSubTotalsRow(self, row, columns, values, dcolumns):
|
||||
def getSubTotalsRow(self, idx, row, columns, values, dcolumns):
|
||||
subTotalsRow = SubTotalsRow(None, self)
|
||||
for idx, c in enumerate(columns):
|
||||
subTotalsRow.data[c.name] = values[idx]
|
||||
for c in dcolumns:
|
||||
subTotalsRow.data[c.output] = u'SUMME: ' + c.getRawValue(row)
|
||||
if idx > 1:
|
||||
for c in dcolumns:
|
||||
subTotalsRow.data[c.output] = u'SUMME: ' + c.getRawValue(row)
|
||||
return subTotalsRow
|
||||
|
||||
def getResult(self):
|
||||
|
@ -147,11 +148,15 @@ class ResultSet(object):
|
|||
if value != groupValues[idx]:
|
||||
groupValues[idx] = value
|
||||
headerRows.append(self.getHeaderRow(row, (f,) + f.outputWith))
|
||||
outputColumns = f.outputWith
|
||||
if not outputColumns:
|
||||
outputColumns = self.getOutputColumnsForField(f)
|
||||
subTotalsRows.append(
|
||||
self.getSubTotalsRow(lastRow,
|
||||
self.getSubTotalsRow(idx,
|
||||
lastRow,
|
||||
self.subTotalsColumns[idx],
|
||||
subTotals[idx],
|
||||
f.outputWith))
|
||||
outputColumns))
|
||||
subTotals[idx] = [0.0 for f in self.subTotalsColumns[idx]]
|
||||
for subTotalsRow in reversed(subTotalsRows):
|
||||
res.append(subTotalsRow)
|
||||
|
@ -194,3 +199,6 @@ class ResultSet(object):
|
|||
def subTotalsColumns(self):
|
||||
return self.context.getSubTotalsFields()
|
||||
|
||||
def getOutputColumnsForField(self, f):
|
||||
return self.context.getOutputFieldsForField(f)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue