Reportgenerator: Man kann jetzt auch Trennzeilen einfügen, die in der HTML-Ausgabe...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 13 Jun 2007 13:38:38 +0000 (13:38 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 13 Jun 2007 13:38:38 +0000 (13:38 +0000)
SL/ReportGenerator.pm
templates/webpages/report_generator/html_report_de.html
templates/webpages/report_generator/html_report_master.html

index 37e6bed..6a78c53 100644 (file)
@@ -86,17 +86,30 @@ sub set_sort_indicator {
 sub add_data {
   my $self = shift;
 
+  my $last_row_set;
+
   while (my $arg = shift) {
     if ('ARRAY' eq ref $arg) {
       push @{ $self->{data} }, $arg;
+      $last_row_set = $arg;
 
     } elsif ('HASH' eq ref $arg) {
-      push @{ $self->{data} }, [ $arg ];
+      my $row_set = [ $arg ];
+      push @{ $self->{data} }, $row_set;
+      $last_row_set = $row_set;
 
     } else {
       $self->{form}->error('Incorrect usage -- expecting hash or array ref');
     }
   }
+
+  return $last_row_set;
+}
+
+sub add_separator {
+  my $self = shift;
+
+  push @{ $self->{data} }, { 'type' => 'separator' };
 }
 
 sub clear_data {
@@ -239,6 +252,18 @@ sub prepare_html_content {
   my @rows;
 
   foreach my $row_set (@{ $self->{data} }) {
+    if ('HASH' eq ref $row_set) {
+      my $row_data = {
+        'IS_CONTROL'    => 1,
+        'IS_SEPARATOR'  => $row_set->{type} eq 'separator',
+        'NUM_COLUMNS'   => scalar @visible_columns,
+      };
+
+      push @rows, $row_data;
+
+      next;
+    }
+
     $outer_idx++;
 
     foreach my $row (@{ $row_set }) {
@@ -404,6 +429,7 @@ sub generate_csv_content {
   }
 
   foreach my $row_set (@{ $self->{data} }) {
+    next if ('ARRAY' ne ref $row_set);
     foreach my $row (@{ $row_set }) {
       $csv->print($stdout, [ map { $row->{$_}->{data} } @visible_columns ]);
     }
index 899968e..e60b0e7 100644 (file)
    </tr>
 
    <TMPL_LOOP ROWS>
-    <tr class="listrow<TMPL_VAR outer_idx_odd>">
-     <TMPL_LOOP COLUMNS>
-      <td<TMPL_IF align> align="<TMPL_VAR align>"</TMPL_IF><TMPL_IF valign> valign="<TMPL_VAR valign>"</TMPL_IF>>
-       <TMPL_IF raw_data><TMPL_VAR raw_data></TMPL_IF>
-       <TMPL_IF data>
-        <TMPL_IF link><a href="<TMPL_VAR link>"></TMPL_IF>
-        <TMPL_VAR data><TMPL_IF link></a></TMPL_IF>
-       </TMPL_IF>
-      </td>
-     </TMPL_LOOP>
-    </tr>
+    <TMPL_IF IS_CONTROL>
+     <TMPL_IF IS_SEPARATOR><tr><td colspan="<TMPL_VAR NUM_COLUMNS>"><hr size="3" noshade></td></tr></TMPL_IF>
+     <TMPL_ELSE>
+     <tr class="listrow<TMPL_VAR outer_idx_odd>">
+      <TMPL_LOOP COLUMNS>
+       <td<TMPL_IF align> align="<TMPL_VAR align>"</TMPL_IF><TMPL_IF valign> valign="<TMPL_VAR valign>"</TMPL_IF><TMPL_IF class> class="<TMPL_VAR class>"</TMPL_IF>>
+        <TMPL_IF raw_data><TMPL_VAR raw_data></TMPL_IF>
+        <TMPL_IF data>
+         <TMPL_IF link><a href="<TMPL_VAR link>"></TMPL_IF>
+         <TMPL_VAR data><TMPL_IF link></a></TMPL_IF>
+        </TMPL_IF>
+       </td>
+      </TMPL_LOOP>
+     </tr>
+    </TMPL_IF>
    </TMPL_LOOP>
 
    <tr><td colspan="<TMPL_VAR NUM_COLUMNS>"><hr size="3" noshade></td></tr>
index 4a8d8eb..718caca 100644 (file)
    </tr>
 
    <TMPL_LOOP ROWS>
-    <tr class="listrow<TMPL_VAR outer_idx_odd>">
-     <TMPL_LOOP COLUMNS>
-      <td<TMPL_IF align> align="<TMPL_VAR align>"</TMPL_IF><TMPL_IF valign> valign="<TMPL_VAR valign>"</TMPL_IF>>
-       <TMPL_IF raw_data><TMPL_VAR raw_data></TMPL_IF>
-       <TMPL_IF data>
-        <TMPL_IF link><a href="<TMPL_VAR link>"></TMPL_IF>
-        <TMPL_VAR data><TMPL_IF link></a></TMPL_IF>
-       </TMPL_IF>
-      </td>
-     </TMPL_LOOP>
-    </tr>
+    <TMPL_IF IS_CONTROL>
+     <TMPL_IF IS_SEPARATOR><tr><td colspan="<TMPL_VAR NUM_COLUMNS>"><hr size="3" noshade></td></tr></TMPL_IF>
+     <TMPL_ELSE>
+     <tr class="listrow<TMPL_VAR outer_idx_odd>">
+      <TMPL_LOOP COLUMNS>
+       <td<TMPL_IF align> align="<TMPL_VAR align>"</TMPL_IF><TMPL_IF valign> valign="<TMPL_VAR valign>"</TMPL_IF><TMPL_IF class> class="<TMPL_VAR class>"</TMPL_IF>>
+        <TMPL_IF raw_data><TMPL_VAR raw_data></TMPL_IF>
+        <TMPL_IF data>
+         <TMPL_IF link><a href="<TMPL_VAR link>"></TMPL_IF>
+         <TMPL_VAR data><TMPL_IF link></a></TMPL_IF>
+        </TMPL_IF>
+       </td>
+      </TMPL_LOOP>
+     </tr>
+    </TMPL_IF>
    </TMPL_LOOP>
 
    <tr><td colspan="<TMPL_VAR NUM_COLUMNS>"><hr size="3" noshade></td></tr>