How to calculate the total for values in a column - kwantu/platformconfiguration GitHub Wiki
Created by Rob Worthington, last modified on Oct 03, 2017. Copied from Kwantu Wiki on 2018-12-12.
Example of how to calculate the total for a column
<xpathFunctionfunction="sum((model/customModel/meetingattendrepeatbMatrix/meetingattendrepeatmatrixbDef/repeatDef/dataRow/learningMaterials[. ne '']))"/>
- meetingattendrepeatbMatrix - set ID
- meetingattendrepeatmatrixbDef - ID for repeat
- Budgets - repeatdef ID
- Budget - row ID
- TotalFundBodyFy - field row
Full example code block as follows:
<?xml version="1.0" encoding="utf-8"?>
<elRepeat id="meetingattendrepeatbMatrix" class="repeatGrid" orientation="horizontal">
<repeatDef id="meetingattendrepeatmatrixbDef">
<addRows>
<autoLoad>
<taxonomy id="TACmeetinghservicesReferred">
<field primaryKey="true" observableName="code" xpathExpr="code" />
<field observableName="label" xpathExpr="label" />
<field observableName="response" xpathExpr="" />
</taxonomy>
</autoLoad>
</addRows>
<headerRow id="hsrowheader" show="true" />
<dataRow id="hsrowId" show="true" />
<summaryRow id="hsrowsummary" show="true" />
<columns numberColumns="4" />
<keyValue>code</keyValue>
</repeatDef>
<repeatColumn columnOrder="1" seq="1" width="15%">
<repeatHeader labelsFromData="No">
<label show="true">
<i18n xml:lang="en">Health services referred</i18n>
</label>
</repeatHeader>
<repeatData span="1">
<elField id="code">
<displays>
<display show="false" mode="edit" widget="label">
<label show="false">
<i18n xml:lang="en" />
</label>
</display>
<display show="false" mode="readonly" widget="label">
<label show="false">
<i18n xml:lang="en" />
</label>
</display>
</displays>
<fieldData dataType="string" />
</elField>
<elField id="label">
<displays>
<display show="true" mode="edit" widget="label">
<label show="false">
<i18n xml:lang="en" />
</label>
</display>
<display show="false" mode="readonly" widget="label">
<label show="false">
<i18n xml:lang="en" />
</label>
</display>
</displays>
<fieldData dataType="string" />
</elField>
</repeatData>
</repeatColumn>
<repeatColumn columnOrder="2" seq="2" width="15%">
<repeatHeader labelsFromData="No">
<label>
<i18n xml:lang="en">Males referred</i18n>
</label>
</repeatHeader>
<repeatData>
<elField id="numofMales">
<displays>
<display show="true" mode="edit" widget="textbox">
<label show="false">
<i18n xml:lang="en">Number of males referred</i18n>
</label>
</display>
<display show="true" mode="readonly" widget="label">
<label show="true">
<i18n xml:lang="en">Number of males referred</i18n>
</label>
</display>
</displays>
<fieldData dataType="string" />
<validations>
<validation seq="1">
<simple type="number" dataType="boolean" value="true" />
<errorMessage>
<i18n xml:lang="en">Please enter a value.</i18n>
</errorMessage>
</validation>
</validations>
</elField>
</repeatData>
</repeatColumn>
<repeatColumn columnOrder="3" seq="3" width="15%">
<repeatHeader labelsFromData="No">
<label>
<i18n xml:lang="en">Females referred</i18n>
</label>
</repeatHeader>
<repeatData>
<elField id="numofFemales">
<displays>
<display show="true" mode="edit" widget="textbox">
<label show="false">
<i18n xml:lang="en">Number of females referred</i18n>
</label>
</display>
<display show="true" mode="readonly" widget="label">
<label show="false">
<i18n xml:lang="en">Number of females referred</i18n>
</label>
</display>
</displays>
<fieldData dataType="string" />
<validations>
<validation seq="1">
<simple type="number" dataType="boolean" value="true" />
<errorMessage>
<i18n xml:lang="en">Please enter a value.</i18n>
</errorMessage>
</validation>
</validations>
</elField>
</repeatData>
</repeatColumn>
<repeatColumn columnOrder="4" seq="4" width="15%">
<repeatHeader labelsFromData="No">
<label show="true">
<i18n xml:lang="en">Total</i18n>
</label>
</repeatHeader>
<repeatData>
<elField id="totalNumber">
<displays>
<display show="true" mode="edit" widget="label">
<label show="true">
<i18n xml:lang="en" />
</label>
</display>
<display show="true" mode="readonly" widget="label">
<label show="true">
<i18n xml:lang="en" />
</label>
</display>
</displays>
<fieldData dataType="integer">
<calculated seq="1">
<sum>
<elementAtomic dataType="integer">
<indicatorSet indicatorId="" setId="" Scope="currentUUID" dataType="integer">
<element elementId="numofMales" />
</indicatorSet>
</elementAtomic>
<elementAtomic dataType="integer">
<indicatorSet indicatorId="" setId="" Scope="currentUUID" dataType="integer">
<element elementId="numofFemales" />
</indicatorSet>
</elementAtomic>
</sum>
</calculated>
</fieldData>
<help show="false">
<i18n xml:lang="en">Total per health services referred.</i18n>
</help>
</elField>
</repeatData>
</repeatColumn>
</elRepeat>