Revision 66e5ad7b
Von Moritz Bunkus vor mehr als 17 Jahren hinzugefügt
SL/ReportGenerator.pm | ||
---|---|---|
}
|
||
|
||
my ($outer_idx, $inner_idx) = (0, 0);
|
||
my $next_border_top;
|
||
my @rows;
|
||
|
||
foreach my $row_set (@{ $self->{data} }) {
|
||
if ('HASH' eq ref $row_set) {
|
||
if ($row_set->{type} eq 'separator') {
|
||
if (! scalar @rows) {
|
||
$next_border_top = 1;
|
||
} else {
|
||
$rows[-1]->{BORDER_BOTTOM} = 1;
|
||
}
|
||
|
||
next;
|
||
}
|
||
|
||
my $row_data = {
|
||
'IS_CONTROL' => 1,
|
||
'IS_SEPARATOR' => $row_set->{type} eq 'separator',
|
||
'IS_COLSPAN_DATA' => $row_set->{type} eq 'colspan_data',
|
||
'NUM_COLUMNS' => scalar @visible_columns,
|
||
'BORDER_TOP' => $next_border_top,
|
||
'data' => $row_set->{data},
|
||
};
|
||
|
||
push @rows, $row_data;
|
||
|
||
$next_border_top = 0;
|
||
|
||
next;
|
||
}
|
||
|
||
... | ... | |
'outer_idx' => $outer_idx,
|
||
'outer_idx_odd' => $outer_idx % 2,
|
||
'inner_idx' => $inner_idx,
|
||
'BORDER_TOP' => $next_border_top,
|
||
};
|
||
|
||
push @rows, $row_data;
|
||
|
||
$next_border_top = 0;
|
||
}
|
||
}
|
||
|
templates/webpages/report_generator/html_report_de.html | ||
---|---|---|
-->
|
||
</script>
|
||
|
||
<style type="text/css">
|
||
<!--
|
||
.top_border {
|
||
border-top: solid black;
|
||
border-width: 4px;
|
||
}
|
||
.bottom_border {
|
||
border-bottom: solid black;
|
||
border-width: 4px;
|
||
}
|
||
-->
|
||
</style>
|
||
|
||
[% IF MESSAGE %]
|
||
<p>[% MESSAGE %]</p>
|
||
[% END %]
|
||
... | ... | |
|
||
[% FOREACH row = ROWS %]
|
||
[% IF row.IS_CONTROL %]
|
||
[% IF row.IS_SEPARATOR %]<tr><td colspan="[% row.NUM_COLUMNS %]"><hr size="3" noshade></td></tr>[% END %][% IF row.IS_COLSPAN_DATA %]<tr><td colspan="[% row.NUM_COLUMNS %]">[% row.data %]</td></tr>[% END %]
|
||
[% IF row.IS_COLSPAN_DATA %]<tr><td colspan="[% row.NUM_COLUMNS %]">[% row.data %]</td></tr>[% END %]
|
||
[% ELSE %]
|
||
<tr class="listrow[% row.outer_idx_odd %]">
|
||
[% FOREACH col = row.COLUMNS %]<td[% IF col.align %] align="[% col.align %]"[% END %][% IF col.valign %] valign="[% col.valign %]"[% END %][% IF col.class %] class="[% col.class %]"[% END %]>[% IF col.raw_data %][% col.raw_data %][% END %][% USE iterator(col.CELL_ROWS) %][% FOREACH cell_row = iterator %][% IF cell_row.data %][% IF cell_row.link %]<a href="[% cell_row.link %]">[% END %][% cell_row.data %][% IF cell_row.link %]</a>[% END %][% END %][% UNLESS iterator.last %]<br>[% END %][% END %]</td>
|
||
[% END %]
|
||
[%- FOREACH col = row.COLUMNS %]
|
||
<td[% IF col.align %] align="[% col.align %]"[% END %]
|
||
[%- IF col.valign %] valign="[% col.valign %]"[%- END %]
|
||
[%- SET tdclass = '' %]
|
||
[%- IF row.BORDER_TOP %][%- SET tdclass = "$tdclass top_border" %][%- END %]
|
||
[%- IF row.BORDER_BOTTOM %][%- SET tdclass = "$tdclass bottom_border" %][%- END %]
|
||
[%- IF col.class %][%- SET tdclass = "$tdclass $col.class" %][%- END %]
|
||
[%- IF tdclass %] class="[% tdclass %]"[%- END %]>
|
||
[%- IF col.raw_data %][%- col.raw_data %][%- END %]
|
||
[%- USE iterator(col.CELL_ROWS) %][%- FOREACH cell_row = iterator %]
|
||
[%- IF cell_row.data %]
|
||
[%- IF cell_row.link %]<a href="[% cell_row.link %]">[%- END %]
|
||
[%- cell_row.data %]
|
||
[%- IF cell_row.link %]</a>[%- END %]
|
||
[%- END %]
|
||
[%- UNLESS iterator.last %]<br>[%- END %]
|
||
[%- END %]
|
||
</td>
|
||
[%- END %]
|
||
</tr>
|
||
[% END %]
|
||
[% END %]
|
templates/webpages/report_generator/html_report_master.html | ||
---|---|---|
-->
|
||
</script>
|
||
|
||
<style type="text/css">
|
||
<!--
|
||
.top_border {
|
||
border-top: solid black;
|
||
border-width: 4px;
|
||
}
|
||
.bottom_border {
|
||
border-bottom: solid black;
|
||
border-width: 4px;
|
||
}
|
||
-->
|
||
</style>
|
||
|
||
[% IF MESSAGE %]
|
||
<p>[% MESSAGE %]</p>
|
||
[% END %]
|
||
... | ... | |
|
||
[% FOREACH row = ROWS %]
|
||
[% IF row.IS_CONTROL %]
|
||
[% IF row.IS_SEPARATOR %]<tr><td colspan="[% row.NUM_COLUMNS %]"><hr size="3" noshade></td></tr>[% END %][% IF row.IS_COLSPAN_DATA %]<tr><td colspan="[% row.NUM_COLUMNS %]">[% row.data %]</td></tr>[% END %]
|
||
[% IF row.IS_COLSPAN_DATA %]<tr><td colspan="[% row.NUM_COLUMNS %]">[% row.data %]</td></tr>[% END %]
|
||
[% ELSE %]
|
||
<tr class="listrow[% row.outer_idx_odd %]">
|
||
[% FOREACH col = row.COLUMNS %]<td[% IF col.align %] align="[% col.align %]"[% END %][% IF col.valign %] valign="[% col.valign %]"[% END %][% IF col.class %] class="[% col.class %]"[% END %]>[% IF col.raw_data %][% col.raw_data %][% END %][% USE iterator(col.CELL_ROWS) %][% FOREACH cell_row = iterator %][% IF cell_row.data %][% IF cell_row.link %]<a href="[% cell_row.link %]">[% END %][% cell_row.data %][% IF cell_row.link %]</a>[% END %][% END %][% UNLESS iterator.last %]<br>[% END %][% END %]</td>
|
||
[% END %]
|
||
[%- FOREACH col = row.COLUMNS %]
|
||
<td[% IF col.align %] align="[% col.align %]"[% END %]
|
||
[%- IF col.valign %] valign="[% col.valign %]"[%- END %]
|
||
[%- SET tdclass = '' %]
|
||
[%- IF row.BORDER_TOP %][%- SET tdclass = "$tdclass top_border" %][%- END %]
|
||
[%- IF row.BORDER_BOTTOM %][%- SET tdclass = "$tdclass bottom_border" %][%- END %]
|
||
[%- IF col.class %][%- SET tdclass = "$tdclass $col.class" %][%- END %]
|
||
[%- IF tdclass %] class="[% tdclass %]"[%- END %]>
|
||
[%- IF col.raw_data %][%- col.raw_data %][%- END %]
|
||
[%- USE iterator(col.CELL_ROWS) %][%- FOREACH cell_row = iterator %]
|
||
[%- IF cell_row.data %]
|
||
[%- IF cell_row.link %]<a href="[% cell_row.link %]">[%- END %]
|
||
[%- cell_row.data %]
|
||
[%- IF cell_row.link %]</a>[%- END %]
|
||
[%- END %]
|
||
[%- UNLESS iterator.last %]<br>[%- END %]
|
||
[%- END %]
|
||
</td>
|
||
[%- END %]
|
||
</tr>
|
||
[% END %]
|
||
[% END %]
|
Auch abrufbar als: Unified diff
Trennstriche in Berichten als Rahmen der Tabellenzellen zeichnen, nicht als <hr>.