Trennstriche in Berichten als Rahmen der Tabellenzellen zeichnen, nicht als <hr>.
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 8 Nov 2007 14:56:06 +0000 (14:56 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 8 Nov 2007 14:56:06 +0000 (14:56 +0000)
SL/ReportGenerator.pm
templates/webpages/report_generator/html_report_de.html
templates/webpages/report_generator/html_report_master.html

index 732016b..617a274 100644 (file)
@@ -268,20 +268,33 @@ sub prepare_html_content {
   }
 
   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;
     }
 
@@ -306,9 +319,12 @@ sub prepare_html_content {
         '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;
     }
   }
 
index b14b02e..de330cf 100644 (file)
     -->
  </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 %]
index c77fbdb..d76788b 100644 (file)
     -->
  </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 %]