Auftrags-Controller: HTML-formatierte Bemerkungen richtig in PDF umwandeln.
[kivitendo-erp.git] / SL / ReportGenerator.pm
index e965e44..65a1492 100644 (file)
@@ -121,7 +121,7 @@ sub add_data {
         $row->{$column}->{align}   = $self->{columns}->{$column}->{align} unless (defined $row->{$column}->{align});
       }
 
-      foreach my $field (qw(data link)) {
+      foreach my $field (qw(data link link_class)) {
         map { $row->{$_}->{$field} = [ $row->{$_}->{$field} ] if (ref $row->{$_}->{$field} ne 'ARRAY') } keys %{ $row };
       }
     }
@@ -351,6 +351,7 @@ sub prepare_html_content {
           push @{ $col->{CELL_ROWS} }, {
             'data' => '' . $self->html_format($col->{data}->[$i]),
             'link' => $col->{link}->[$i],
+            link_class => $col->{link_class}->[$i],
           };
         }
 
@@ -401,6 +402,7 @@ sub prepare_html_content {
     'EXPORT_NEXTSUB'       => $self->{export}->{nextsub},
     'DATA_PRESENT'         => $self->{data_present},
     'CONTROLLER_DISPATCH'  => $opts->{controller_class},
+    'TABLE_CLASS'          => $opts->{table_class},
   };
 
   return $variables;
@@ -817,7 +819,7 @@ Then there are too many results, you need pagination, you want to print or expor
 
 The ReportGenerator class was designed because this exact scenario happened about half a dozen times in kivitendo.
 It's purpose is to manage all those formating, culling, sorting, and templating.
-Which makes it almost as complicated to use as doing the work for yourself.
+Which makes it almost as complicated to use as doing the work by yourself.
 
 =head1 FUNCTIONS
 
@@ -837,16 +839,21 @@ Sets the order of columns. Any columns not present here are appended in alphabet
 
 =item set_sort_indicator $column,$direction
 
-Sets sorting ot the table by specifying a column and a direction, where the direction will be evaluated to ascending if true.
-Note that this is only for displaying. The data has to be presented already sorted.
+Sets sorting of the table by specifying a column and a direction, where the direction will be evaluated to ascending if true.
+Note that this is only for displaying. The data has to have already been sorted when it was added.
 
 =item add_data \@data
 
 =item add_data \%data
 
-Adds data to the report. A given hash_ref is interpreted as a single line of data, every array_ref as a collection of lines.
-Every line will be expected to be in a kay => value format. Note that the rows have to be already sorted.
-ReportGenerator does only colum sorting on its own, and provides links to sorting and visual cue as to which column was sorted by.
+Adds data to the report. A given hash_ref is interpreted as a single line of
+data, every array_ref as a collection of lines.  Every line will be expected to
+be in a key => value format. Note that the rows have to already have been
+sorted.
+
+The ReportGenerator is only able to display pre-sorted data and to indicate by
+which column and in which direction the data has been sorted via visual clues
+in the column headers. It also provides links to invert the sort direction.
 
 =item add_separator
 
@@ -855,12 +862,12 @@ Adds a separator line to the report.
 =item add_control \%data
 
 Adds a control element to the data. Control elements are an experimental feature to add functionality to a report the regular data cannot.
-Every control element needs to set IS_CONTROL_DATA, in order to be recongnized by the template.
+Every control element needs to set IS_CONTROL_DATA, in order to be recognized by the template.
 Currently the only control element is a colspan element, which can be used as a mini header further down the report.
 
 =item clear_data
 
-Deletes all data filled into the report, but keeps options set.
+Deletes all data added to the report, but keeps options set.
 
 =item set_options %options
 
@@ -894,7 +901,7 @@ Escapes HTML characters in $value and substitutes newlines with '<br>'. Returns
 =item prepare_html_content $column,$name,@column_headers
 
 Parses the data, and sets internal data needed for certain output format. Must be called once before the template is invoked.
-Should not be called extrenally, since all render and generate functions invoke it anyway.
+Should not be called externally, since all render and generate functions invoke it anyway.
 
 =item generate_html_content