X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/c83d63edf8f0f29dae3a15f1780bba8d30fd8d69..ddf6b21857f3b1cfbc9efe74004d5faa8e03d23c:/SL/ReportGenerator.pm diff --git a/SL/ReportGenerator.pm b/SL/ReportGenerator.pm index 2e8bcf92d..648ea1dd5 100644 --- a/SL/ReportGenerator.pm +++ b/SL/ReportGenerator.pm @@ -44,7 +44,7 @@ sub new { }; $self->{export} = { 'nextsub' => '', - 'variable_list' => '', + 'variable_list' => [], }; $self->{data_present} = 0; @@ -61,17 +61,18 @@ sub new { sub _init_escaped_strings_map { my $self = shift; - $self->{escaped_strings_map} = - ('ä' => 'ä', - 'ö' => 'ö', - 'ü' => 'ü', - 'Ä' => 'Ä', - 'Ö' => 'Ö', - 'Ü' => 'Ü', - 'ß' => 'ß', - '>' => '>', + $self->{escaped_strings_map} = { + 'ä' => 'ä', + 'ö' => 'ö', + 'ü' => 'ü', + 'Ä' => 'Ä', + 'Ö' => 'Ö', + 'Ü' => 'Ü', + 'ß' => 'ß', + '>' => '>', '<' => '<', - '"' => '"'); + '"' => '"', + }; my $iconv = $main::locale->{iconv_iso8859}; @@ -208,7 +209,7 @@ sub set_export_options { $self->{export} = { 'nextsub' => shift, - 'variable_list' => join(" ", @_), + 'variable_list' => [ @_ ], }; } @@ -342,7 +343,7 @@ sub prepare_html_content { # will format the table cell (e.g. borders etc). if (!scalar @{ $col->{CELL_ROWS} }) { push @{ $col->{CELL_ROWS} }, { 'data' => ' ' }; - } elsif ((1 == scalar @{ $col->{CELL_ROWS} }) && !$col->{CELL_ROWS}->[0]->{data}) { + } elsif ((1 == scalar @{ $col->{CELL_ROWS} }) && (!defined $col->{CELL_ROWS}->[0]->{data} || ($col->{CELL_ROWS}->[0]->{data} eq ''))) { $col->{CELL_ROWS}->[0]->{data} = ' '; } } @@ -361,10 +362,7 @@ sub prepare_html_content { } } - my @export_variables; - foreach my $key (split m/ +/, $self->{export}->{variable_list}) { - push @export_variables, { 'key' => $key, 'value' => $self->{form}->{$key} }; - } + my @export_variables = $self->{form}->flatten_variables(@{ $self->{export}->{variable_list} }); my $allow_pdf_export = $opts->{allow_pdf_export} && (-x $main::html2ps_bin) && (-x $main::ghostscript_bin); @@ -381,7 +379,7 @@ sub prepare_html_content { 'NUM_COLUMNS' => scalar @column_headers, 'ROWS' => \@rows, 'EXPORT_VARIABLES' => \@export_variables, - 'EXPORT_VARIABLE_LIST' => $self->{export}->{variable_list}, + 'EXPORT_VARIABLE_LIST' => join(' ', @{ $self->{export}->{variable_list} }), 'EXPORT_NEXTSUB' => $self->{export}->{nextsub}, 'DATA_PRESENT' => $self->{data_present}, }; @@ -392,8 +390,9 @@ sub prepare_html_content { sub generate_html_content { my $self = shift; my $variables = $self->prepare_html_content(); - - return $self->{form}->parse_html_template('report_generator/html_report', $variables); + my $report_template = $self->{form}->{report_template} ? $self->{form}->{report_template} : 'report_generator/html_report'; + # $form->parse_html_template('report_generator/html_report', $variables)); + return $self->{form}->parse_html_template($report_template, $variables); } sub verify_paper_size { @@ -412,6 +411,7 @@ sub generate_pdf_content { my $form = $self->{form}; my $myconfig = $self->{myconfig}; my $opt = $self->{options}->{pdf_export}; + my $report_template = $form->{report_template} ? $form->{report_template} : 'report_generator/pdf_report'; my $opt_number = $opt->{number} ? 'number : 1' : ''; my $opt_landscape = $opt->{orientation} eq 'landscape' ? 'landscape : 1' : ''; @@ -468,8 +468,8 @@ END unlink $cfg_file_name; $form->error($locale->text('Could not write the temporary HTML file.')); } - - $html_file->print($form->parse_html_template('report_generator/pdf_report', $variables)); + # $form->parse_html_template('report_generator/pdf_report', $variables)); + $html_file->print($form->parse_html_template($report_template, $variables)); $html_file->close(); my $cmdline = @@ -521,7 +521,7 @@ sub unescape_string { my $self = shift; my $text = shift; - foreach my $key (keys %{ $self->{escaped_strigns_map} }) { + foreach my $key (keys %{ $self->{escaped_strings_map} }) { $text =~ s/\Q$key\E/$self->{escaped_strings_map}->{$key}/g; }