add: subTotals to group output field

This commit is contained in:
hplattner 2012-07-05 17:35:18 +02:00
parent 649f79b000
commit b0354c4435
2 changed files with 16 additions and 5 deletions

View file

@ -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):

View file

@ -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)