Hi Michael,
I think this is because at the moment in the Table widget, the tfoot part lies before tbody so it could work when "showFooter" => "top". An unintended consequence is if we stop repeating tfoot it will be shown just before tbody. For now to fix this please open the file koolreport/core/src/widgets/koolphp/Table.tpl.php
and move the tfoot part to after tbody:
<?php
if ($this->showFooter!==null) {
?>
<tfoot <?php echo ($this->showFooter==="top")?"style='display:table-row-group'":""; ?>>
<tr>
<?php
foreach ($showColumnKeys as $cKey) {
$cssStyle = Utility::get($meta["columns"][$cKey], "cssStyle", null);
$tfStyle = is_string($cssStyle)?$cssStyle:Utility::get($cssStyle, "tf");
?>
<td <?php if($tfClass){echo " class='".((gettype($tfClass)=="string")?$tfClass:$tfClass($cKey))."'";} ?> <?php echo ($tfStyle)?"style='$tfStyle'":""; ?> >
<?php
$footerValue = "";
$method = strtolower(Utility::get($meta["columns"][$cKey], "footer"));
if( in_array($method, array("count","sum","avg","min","max","mode")) ) {
$footerValue = Table::formatValue($this->dataStore->$method($cKey), $meta["columns"][$cKey]);
}
$footerText = Utility::get($meta["columns"][$cKey],"footerText");
if ($footerText!==null) {
echo str_replace("@value", $footerValue, $footerText);
} else {
echo $footerValue;
}
?>
</td>
<?php
}
?>
</tr>
</tfoot>
<?php
}
?>
Hope this works for you. We will find a compatible solution for this the Table widget footer in the next release. Thanks!