Grouping data by field
This topic provides examples of how to use the group_function attribute within a field tag to group data. These grouping methods are supported for fields: sum, first, and last. The default method is first.
Example 1: Print sum of WRKD_MINUTES for each employee
In this example, the sum of WRKD_MINUTES is printed for each employee.
This is the full XML definition:
<payroll_export plugin="com.workbrain.app.export.payroll.basic.BasicPayrollExportPlugin">
<data>
<field name='emp_name' group='true'/>
<field name='wrkd_minutes' group_function='sum'/>
<field name='tcode_name'/>
<field name='htype_name'/>
<field name='wrks_authorized'/>
<field name='retro'/>
<dummy_field name='earn_code'/>
</data>
<logic>
<match_output>
<match field="wrks_authorized" value="Y" />
<match field="tcode_name" value="%" />
<match field="htype_name" value="REG" />
<output_row>
<map field="earn_code" value="1" />
</output_row >
</match_output>
<match_output>
<match field="wrks_authorized" value="Y" />
<match field="tcode_name" value="%" />
<match field="htype_name" value="OT1.0" />
<output_row>
<map field="earn_code" value="4" />
</output_row>
</match_output>
<match_output>
<match field="wrks_authorized" value="Y" />
<match field="tcode_name" value="%" />
<match field="htype_name" value="OT1.5" />
<output_row>
<map field="earn_code" value="2" />
</output_row>
</match_output>
<match_output>
<match field="wrks_authorized" value="Y" />
<match field="tcode_name" value="%" />
<match field="htype_name" value="OT2.0" />
<output_row>
<map field="earn_code" value="5" />
</output_row >
</match_output>
<match_output>
<match field="tcode_name" value="UAT" />
<match field="htype_name" value="UNPAID" />
</match_output>
<match_output>
<output_row>
<map field="earn_code" value="E" />
</output_row>
</match_output>
</logic>
<format>
<header>
</header>
<body>
<string field='emp_name' />
<constant>,</constant>
<string field='earn_code'/>
<constant>,</constant>
<number field='wrkd_minutes' format='########0.00' divide='60' null='***'/>
<constant>,</constant>
<string field='retro' />
<new_line/>
</body>
<footer>
</footer>
</format>
</payroll_export>
This table shows a sample of the Payroll Export file output:
emp_name | earn_code | wrkd_minutes | retro |
---|---|---|---|
2102 | 1 | 40.00 | N |
2104 | 1 | 40.00 | N |
3125 | 1 | 56.00 | N |
Example 2: Print last value of WRKD_MINUTES for each employee
In this example, the last value of WRKD_MINUTES is printed for each employee.
The same XML definition is used as in Example 1, except the grouping method is last:
<field name='wrkd_minutes' group_function='last'/>
This table shows a sample of the Payroll Export file output:
emp_name | earn_code | wrkd_minutes | retro |
---|---|---|---|
5210 | 1 | 2.00 | Y |
5211 | 1 | 10.00 | Y |