add report row properties for js calculating totals and subtotals
This commit is contained in:
parent
78969355b6
commit
78748051e2
1 changed files with 13 additions and 1 deletions
|
@ -27,6 +27,8 @@ from cybertools.composer.interfaces import IInstance
|
||||||
from cybertools.composer.report.base import BaseQueryCriteria
|
from cybertools.composer.report.base import BaseQueryCriteria
|
||||||
from cybertools.util.jeep import Jeep
|
from cybertools.util.jeep import Jeep
|
||||||
|
|
||||||
|
from loops.common import normalizeName
|
||||||
|
|
||||||
|
|
||||||
class BaseRow(object):
|
class BaseRow(object):
|
||||||
|
|
||||||
|
@ -52,6 +54,8 @@ class Row(BaseRow):
|
||||||
|
|
||||||
attributeHandlers = {}
|
attributeHandlers = {}
|
||||||
cssClass = u''
|
cssClass = u''
|
||||||
|
rowId = u''
|
||||||
|
subTotalRowIds = []
|
||||||
|
|
||||||
def getRawValue(self, attr):
|
def getRawValue(self, attr):
|
||||||
return self.attributeHandlers.get(
|
return self.attributeHandlers.get(
|
||||||
|
@ -153,7 +157,9 @@ class ResultSet(object):
|
||||||
return None
|
return None
|
||||||
subTotalsRow = SubTotalsRow(None, self)
|
subTotalsRow = SubTotalsRow(None, self)
|
||||||
subTotalsRow.subTotalsGroupColumns = []
|
subTotalsRow.subTotalsGroupColumns = []
|
||||||
subTotalsRow.cssClass = 'subTotalsRow'
|
rowId = '%s-%s' % (gf.name, normalizeName(gf.getRawValue(row)))
|
||||||
|
rowId = rowId.replace('.', '_')
|
||||||
|
subTotalsRow.cssClass = 'subTotalsRow ' + rowId
|
||||||
for idx, c in enumerate(columns):
|
for idx, c in enumerate(columns):
|
||||||
subTotalsRow.data[c.name] = values[idx]
|
subTotalsRow.data[c.name] = values[idx]
|
||||||
if gf in self.subTotalsGroupColumns:
|
if gf in self.subTotalsGroupColumns:
|
||||||
|
@ -243,6 +249,12 @@ class ResultSet(object):
|
||||||
row.groupNumbers = copy(groupNumbers)
|
row.groupNumbers = copy(groupNumbers)
|
||||||
row.groupSequenceNumber = copy(groupSequenceNumber)
|
row.groupSequenceNumber = copy(groupSequenceNumber)
|
||||||
groupSequenceNumber = groupSequenceNumber + 1
|
groupSequenceNumber = groupSequenceNumber + 1
|
||||||
|
for idx, f in enumerate(self.groupColumns):
|
||||||
|
name = f.name
|
||||||
|
value = normalizeName(f.getRawValue(row))
|
||||||
|
value = value.replace('.', '_')
|
||||||
|
row.subTotalRowIds = copy(row.subTotalRowIds) + ['%s-%s' % (
|
||||||
|
name, value)]
|
||||||
elif isinstance(row, GroupHeaderRow):
|
elif isinstance(row, GroupHeaderRow):
|
||||||
sourceField = row.sourceField
|
sourceField = row.sourceField
|
||||||
groupNumbers[sourceField] = \
|
groupNumbers[sourceField] = \
|
||||||
|
|
Loading…
Add table
Reference in a new issue