Eine Report-Klasse geschrieben, der die Ergebnisse von Datenbankabfragen übergeben...
[kivitendo-erp.git] / bin / mozilla / report_generator.pl
1 #=====================================================================
2 # LX-Office ERP
3 # Copyright (C) 2004
4 # Based on SQL-Ledger Version 2.1.9
5 # Web http://www.lx-office.org
6 ######################################################################
7 #
8 # Stuff that can be used from other modules
9 #
10 ######################################################################
11
12 use SL::Form;
13 use SL::Common;
14 use SL::MoreCommon;
15 use SL::ReportGenerator;
16
17 sub export_as_pdf {
18   $lxdebug->enter_sub();
19
20   if ($form->{report_generator_pdf_options_set}) {
21     report_generator_do('PDF');
22     $lxdebug->leave_sub();
23     return;
24   }
25
26   my @form_values;
27   map { push @form_values, { 'key' => $_, 'value' => $form->{$_} } } keys %{ $form };
28
29   $form->{title} = $locale->text('PDF export -- options');
30   $form->header();
31   print $form->parse_html_template('report_generator/pdf_export_options',
32                                    { 'HIDDEN'         => \@form_values,
33                                      'default_margin' => $form->format_amount(\%myconfig, 1.5) });
34
35   $lxdebug->leave_sub();
36 }
37
38 sub export_as_csv {
39   $lxdebug->enter_sub();
40
41   if ($form->{report_generator_csv_options_set}) {
42     report_generator_do('CSV');
43     $lxdebug->leave_sub();
44     return;
45   }
46
47   my @form_values;
48   map { push @form_values, { 'key' => $_, 'value' => $form->{$_} } } keys %{ $form };
49
50   $form->{title} = $locale->text('CSV export -- options');
51   $form->header();
52   print $form->parse_html_template('report_generator/csv_export_options', { 'HIDDEN' => \@form_values });
53
54   $lxdebug->leave_sub();
55 }
56
57 sub report_generator_do {
58   $lxdebug->enter_sub();
59
60   my $format  = shift;
61
62   my $nextsub = $form->{report_generator_nextsub};
63   if (!$nextsub) {
64     $form->error($locale->text('report_generator_nextsub is not defined.'));
65   }
66
67   foreach my $key (split m/ +/, $form->{report_generator_variable_list}) {
68     $form->{$key} = $form->{"report_generator_hidden_${key}"};
69   }
70
71   $form->{report_generator_output_format} = $format;
72
73   delete @{$form}{map { "report_generator_$_" } qw(nextsub variable_list)};
74
75   call_sub($nextsub);
76
77   $lxdebug->leave_sub();
78 }
79
80 1;