Fix "column totals" and "grand totals" in table reports
parent
d2646d08b5
commit
76be373f40
|
@ -262,7 +262,7 @@ foreach my $tbl (@tbl_names)
|
|||
my @col_data;
|
||||
foreach my $col (@col_names)
|
||||
{
|
||||
$data{$tbl}{$col}{$row} = $data{$tbl}{$col}{$row} || 0;
|
||||
$data{$tbl}{$col}{$row} ||= {};
|
||||
push @col_data, $data{$tbl}{$col}{$row};
|
||||
if ($tbl ne "-total-")
|
||||
{
|
||||
|
@ -270,7 +270,10 @@ foreach my $tbl (@tbl_names)
|
|||
# building up the -total- data, and then last time round,
|
||||
# we process it as another tbl, and push() the total values
|
||||
# into the image_data array.
|
||||
$data{"-total-"}{$col}{$row} += $data{$tbl}{$col}{$row};
|
||||
for my $m (keys %{$data{$tbl}{$col}{$row}})
|
||||
{
|
||||
$data{"-total-"}{$col}{$row}{$m} += $data{$tbl}{$col}{$row}{$m};
|
||||
}
|
||||
}
|
||||
}
|
||||
push @tbl_data, \@col_data;
|
||||
|
|
|
@ -99,10 +99,12 @@ END; %]
|
|||
<td class="[% classes.$row_idx.$col_idx %]">
|
||||
[% PROCESS value_display value = row field = row_field %]
|
||||
</td>
|
||||
[% col_n = 0 %]
|
||||
[% FOREACH col = col_names %]
|
||||
[% col_idx = 1 - col_idx %]
|
||||
[% FOR m = mlist %]
|
||||
[% col_totals.$col.$m = col_totals.$col.$m + data.$tbl.$col.$row.$m %]
|
||||
[%# Use numeric keys because fu*king Template::Stash produces double UTF-8 %]
|
||||
[% col_totals.$col_n.$m = col_totals.$col_n.$m + data.$tbl.$col.$row.$m %]
|
||||
[% row_total.$m = row_total.$m + data.$tbl.$col.$row.$m %]
|
||||
<td class="[% classes.$row_idx.$col_idx %]" align="center">
|
||||
[% IF data.$tbl.$col.$row.$m AND data.$tbl.$col.$row.$m > 0 %]
|
||||
|
@ -113,6 +115,7 @@ END; %]
|
|||
[% END %]
|
||||
</td>
|
||||
[% END %]
|
||||
[% col_n = col_n + 1 %]
|
||||
[% END %]
|
||||
[% IF col_names.size > 1 %]
|
||||
[% FOR m = mlist %]
|
||||
|
@ -131,15 +134,17 @@ END; %]
|
|||
<tr>
|
||||
[% row_idx = 1 - row_idx %]
|
||||
<td class="ttotal">Total</td>
|
||||
[% col_n = 0 %]
|
||||
[% FOREACH col = col_names %]
|
||||
[% FOR m = mlist %]
|
||||
<td class="ttotal" align="center">
|
||||
<a href="[% urlbase %]&
|
||||
[% PROCESS value_url value=col field=col_field %]
|
||||
[% "&$row_vals" IF row_vals %]">
|
||||
[% col_totals.$col.$m %]</a>
|
||||
[% col_totals.$col_n.$m %]</a>
|
||||
</td>
|
||||
[% END %]
|
||||
[% col_n = col_n + 1 %]
|
||||
[% END %]
|
||||
[% IF col_names.size > 1 %]
|
||||
[% FOR m = mlist %]
|
||||
|
|
Loading…
Reference in New Issue