Übergabe des Templates an den ReportGenerator nicht über $form, sondern über ReportGe...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 21 Jan 2008 08:46:54 +0000 (08:46 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 21 Jan 2008 08:46:54 +0000 (08:46 +0000)
SL/ReportGenerator.pm
bin/mozilla/rp.pl
locale/de/all
locale/de/rp
templates/webpages/report_generator/html_report_susa_de.html [deleted file]
templates/webpages/report_generator/html_report_susa_master.html [deleted file]
templates/webpages/rp/html_report_susa_de.html [new file with mode: 0644]
templates/webpages/rp/html_report_susa_master.html [new file with mode: 0644]

index 648ea1d..23dd508 100644 (file)
@@ -7,6 +7,10 @@ use Text::Iconv;
 
 use SL::Form;
 
+# Cause locales.pl to parse these files:
+# parse_html_template('report_generator/html_report')
+# parse_html_template('report_generator/pdf_report')
+
 sub new {
   my $type = shift;
 
@@ -21,6 +25,8 @@ sub new {
     'output_format'         => 'HTML',
     'allow_pdf_export'      => 1,
     'allow_csv_export'      => 1,
+    'html_template'         => 'report_generator/html_report',
+    'pdf_template'          => 'report_generator/pdf_report',
     'pdf_export'            => {
       'paper_size'          => 'A4',
       'orientation'         => 'landscape',
@@ -390,9 +396,8 @@ sub prepare_html_content {
 sub generate_html_content {
   my $self      = shift;
   my $variables = $self->prepare_html_content();
-  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);
+
+  return $self->{form}->parse_html_template($self->{options}->{html_template}, $variables);
 }
 
 sub verify_paper_size {
@@ -411,7 +416,6 @@ 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 +472,8 @@ END
     unlink $cfg_file_name;
     $form->error($locale->text('Could not write the temporary HTML file.'));
   }
-  # $form->parse_html_template('report_generator/pdf_report', $variables));
-  $html_file->print($form->parse_html_template($report_template, $variables));
+
+  $html_file->print($form->parse_html_template($self->{options}->{pdf_template}, $variables));
   $html_file->close();
 
   my $cmdline =
index 7fef683..c23abeb 100644 (file)
@@ -91,6 +91,8 @@ require "bin/mozilla/reportgenerator.pl";
 # $locale->text('Non-taxable Sales')
 # $locale->text('Non-taxable Purchases')
 
+# $form->parse_html_template('rp/html_report_susa')
+
 my $rp_access_map = {
   'projects'         => 'report',
   'ar_aging'         => 'general_ledger',
@@ -1417,10 +1419,11 @@ sub generate_trial_balance {
   $report->set_options('output_format'        => 'HTML',
                        'title'                => $form->{title},
                        'attachment_basename'  => $attachment_basename . strftime('_%Y%m%d', localtime time),
+                       'html_template'        => 'report_generator/html_report_susa',
+                       'pdf_template'         => 'report_generator/html_report_susa',
     );
   $report->set_options_from_form();
-  # $form->parse_html_template('report_generator/html_report_susa', $variables));
-  $form->{report_template} = 'report_generator/html_report_susa';
+
   # add sort and escape callback, this one we use for the add sub
   $form->{callback} = $href .= "&sort=$form->{sort}";
 
index 68feab4..04b2a5a 100644 (file)
@@ -148,7 +148,7 @@ $self->{texts} = {
   'Advance turnover tax return' => 'Umsatzsteuervoranmeldung',
   'Aktion'                      => 'Aktion',
   'All'                         => 'Alle',
-  'All Accounts'                => '',
+  'All Accounts'                => 'Alle Konten',
   'All Datasets up to date!'    => 'Alle Datenbanken sind auf aktuellem Stand.',
   'All changes in that file have been reverted.' => 'Alle &Auml;nderungen in dieser Datei wurden r&uuml;ckg&auml;ngig gemacht.',
   'All database upgrades have been applied.' => 'Alle Datenbankupdates wurden eingespielt.',
@@ -911,7 +911,7 @@ aktualisieren wollen?',
   'No backup file has been uploaded.' => 'Es wurde keine Sicherungsdatei hochgeladen.',
   'No bins have been added to this warehouse yet.' => 'Es wurden zu diesem Lager noch keine Lagerpl&auml;tze angelegt.',
   'No customer has been selected yet.' => 'Es wurde noch kein Kunde ausgewählt.',
-  'No data was found.'          => 'Keine Daten gefunden',
+  'No data was found.'          => 'Es wurden keine Daten gefunden.',
   'No databases have been found on this server.' => 'Auf diesem Server wurden keine Datenbanken gefunden.',
   'No datasets have been selected.' => 'Es wurden keine Datenbanken ausgew&auml;hlt.',
   'No dunnings have been selected for printing.' => 'Es wurden keine Mahnungen zum Drucken ausgew&auml;hlt.',
index 32149f7..14d1cf1 100644 (file)
@@ -11,7 +11,7 @@ $self->{texts} = {
   'Accrual'                     => 'Bilanzierung',
   'Address'                     => 'Adresse',
   'Advance turnover tax return' => 'Umsatzsteuervoranmeldung',
-  'All Accounts'                => 'All Accounts',
+  'All Accounts'                => 'Alle Konten',
   'All reports'                 => 'Alle Berichte (Konten&uuml;bersicht, Summen- u. Saldenliste, GuV, BWA, Bilanz, Projektbuchungen)',
   'Amount'                      => 'Betrag',
   'Apr'                         => 'Apr',
diff --git a/templates/webpages/report_generator/html_report_susa_de.html b/templates/webpages/report_generator/html_report_susa_de.html
deleted file mode 100644 (file)
index fd72a83..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-[% USE HTML %]<body>
-
- <script type="text/javascript">
-  <!--
-      function submit_report_generator_form(nextsub) {
-        document.report_generator_form.report_generator_dispatch_to.value = nextsub;
-        document.report_generator_form.submit();
-      }
-
-    -->
- </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 %]
-
- <div class="listtop" width="100%">Summen- und Saldenliste [% template_fromto %]</div>
-
- [% IF TOP_INFO_TEXT %]
-  <p>[% TOP_INFO_TEXT %]</p>
- [% END %]
-
- [% RAW_TOP_INFO_TEXT %]
-
- [% IF DATA_PRESENT %]
- <p>
-  <table width="100%">
-   <tr>
-     <th class="listheading" rowspan=2>Kontonummer</th>
-     <th class="listheading" rowspan=2>Beschreibung</th>
-     <th class="listheading" rowspan=2>Letzte Buchung</th>
-     <th class="listheading" colspan=2>Eröffnungsbilanzwerte</th>
-     <th class="listheading" colspan=2>Summe für [% template_fromto %]</th>
-     <th class="listheading" colspan=2>Summe per [% template_to %]</th>
-     <th class="listheading" colspan=2>Saldo per [% template_to %]</th>
-   </tr>
-   <tr>
-    <th class="listheading">Aktiva</th>
-    <th class="listheading">Passiva</th>
-    <th class="listheading">Soll</th>
-    <th class="listheading">Haben</th>
-    <th class="listheading">Soll</th>
-    <th class="listheading">Haben</th>
-    <th class="listheading">Soll</th>
-    <th class="listheading">Haben</th>
-  
-   [% FOREACH row = ROWS %]
-    [% IF row.IS_CONTROL %]
-     [% 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 %]
-         [%- 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 %]
-
-   <tr><td colspan="[% NUM_COLUMNS %]"><hr size="3" noshade></td></tr>
-
-  </table>
- </p>
- [% ELSE %]
-  <p>Keine Daten gefunden</p>
- [% END %]
-
- [% RAW_BOTTOM_INFO_TEXT %]
-
- [% IF BOTTOM_INFO_TEXT %]
-  <p>[% BOTTOM_INFO_TEXT %]</p>
- [% END %]
-
- [% IF SHOW_EXPORT_BUTTONS %]
-  <form action="[% HTML.escape(script) %]" name="report_generator_form" method="post">
-   [% FOREACH var = EXPORT_VARIABLES %]<input type="hidden" name="report_generator_hidden_[% var.key %]" value="[% HTML.escape(var.value) %]">
-   [% END %]
-
-   <input type="hidden" name="report_generator_nextsub" value="[% HTML.escape(EXPORT_NEXTSUB) %]">
-   <input type="hidden" name="report_generator_variable_list" value="[% HTML.escape(EXPORT_VARIABLE_LIST) %]">
-   <input type="hidden" name="report_generator_dispatch_to" value="">
-   <input type="hidden" name="action" value="report_generator_dispatcher">
-
-   <p>
-    Listenexport<br>
-    [% IF ALLOW_PDF_EXPORT %]<button type="button" class="submit" onclick="submit_report_generator_form('report_generator_export_as_pdf')">Als PDF exportieren</button>[% END %]
-    [% IF ALLOW_CSV_EXPORT %]<button type="button" class="submit" onclick="submit_report_generator_form('report_generator_export_as_csv')">Als CSV exportieren</button>[% END %]
-   </p>
-  </form>
- [% END %]
-
-</body>
diff --git a/templates/webpages/report_generator/html_report_susa_master.html b/templates/webpages/report_generator/html_report_susa_master.html
deleted file mode 100644 (file)
index dbaf412..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-[% USE HTML %]<body>
-
- <script type="text/javascript">
-  <!--
-      function submit_report_generator_form(nextsub) {
-        document.report_generator_form.report_generator_dispatch_to.value = nextsub;
-        document.report_generator_form.submit();
-      }
-
-    -->
- </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 %]
-
- <div class="listtop" width="100%"><translate>Summen- und Saldenliste</translate> [% template_fromto %]</div>
-
- [% IF TOP_INFO_TEXT %]
-  <p>[% TOP_INFO_TEXT %]</p>
- [% END %]
-
- [% RAW_TOP_INFO_TEXT %]
-
- [% IF DATA_PRESENT %]
- <p>
-  <table width="100%">
-   <tr>
-     <th class="listheading" rowspan=2><translate>Account Number</translate></th>
-     <th class="listheading" rowspan=2><translate>Description</translate></th>
-     <th class="listheading" rowspan=2><translate>Last Transaction</translate></th>
-     <th class="listheading" colspan=2><translate>Starting Balance</translate></th>
-     <th class="listheading" colspan=2><translate>Sum for</translate> [% template_fromto %]</th>
-     <th class="listheading" colspan=2><translate>Sum per</translate> [% template_to %]</th>
-     <th class="listheading" colspan=2><translate>Saldo per</translate> [% template_to %]</th>
-   </tr>
-   <tr>
-    <th class="listheading"><translate>Assets</translate></th>
-    <th class="listheading"><translate>Equity</translate></th>
-    <th class="listheading"><translate>Debit</translate></th>
-    <th class="listheading"><translate>Credit</translate></th>
-    <th class="listheading"><translate>Debit</translate></th>
-    <th class="listheading"><translate>Credit</translate></th>
-    <th class="listheading"><translate>Debit</translate></th>
-    <th class="listheading"><translate>Credit</translate></th>
-  
-   [% FOREACH row = ROWS %]
-    [% IF row.IS_CONTROL %]
-     [% 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 %]
-         [%- 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 %]
-
-   <tr><td colspan="[% NUM_COLUMNS %]"><hr size="3" noshade></td></tr>
-
-  </table>
- </p>
- [% ELSE %]
-  <p><translate>No data was found.</translate></p>
- [% END %]
-
- [% RAW_BOTTOM_INFO_TEXT %]
-
- [% IF BOTTOM_INFO_TEXT %]
-  <p>[% BOTTOM_INFO_TEXT %]</p>
- [% END %]
-
- [% IF SHOW_EXPORT_BUTTONS %]
-  <form action="[% HTML.escape(script) %]" name="report_generator_form" method="post">
-   [% FOREACH var = EXPORT_VARIABLES %]<input type="hidden" name="report_generator_hidden_[% var.key %]" value="[% HTML.escape(var.value) %]">
-   [% END %]
-
-   <input type="hidden" name="report_generator_nextsub" value="[% HTML.escape(EXPORT_NEXTSUB) %]">
-   <input type="hidden" name="report_generator_variable_list" value="[% HTML.escape(EXPORT_VARIABLE_LIST) %]">
-   <input type="hidden" name="report_generator_dispatch_to" value="">
-   <input type="hidden" name="action" value="report_generator_dispatcher">
-
-   <p>
-    Listenexport<br>
-    [% IF ALLOW_PDF_EXPORT %]<button type="button" class="submit" onclick="submit_report_generator_form('report_generator_export_as_pdf')">Als PDF exportieren</button>[% END %]
-    [% IF ALLOW_CSV_EXPORT %]<button type="button" class="submit" onclick="submit_report_generator_form('report_generator_export_as_csv')">Als CSV exportieren</button>[% END %]
-   </p>
-  </form>
- [% END %]
-
-</body>
diff --git a/templates/webpages/rp/html_report_susa_de.html b/templates/webpages/rp/html_report_susa_de.html
new file mode 100644 (file)
index 0000000..6b63446
--- /dev/null
@@ -0,0 +1,120 @@
+[% USE HTML %]<body>
+
+ <script type="text/javascript">
+  <!--
+      function submit_report_generator_form(nextsub) {
+        document.report_generator_form.report_generator_dispatch_to.value = nextsub;
+        document.report_generator_form.submit();
+      }
+
+    -->
+ </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 %]
+
+ <div class="listtop" width="100%">Summen- und Saldenliste [% template_fromto %]</div>
+
+ [% IF TOP_INFO_TEXT %]
+  <p>[% TOP_INFO_TEXT %]</p>
+ [% END %]
+
+ [% RAW_TOP_INFO_TEXT %]
+
+ [% IF DATA_PRESENT %]
+ <p>
+  <table width="100%">
+   <tr>
+     <th class="listheading" rowspan=2>Kontonummer</th>
+     <th class="listheading" rowspan=2>Beschreibung</th>
+     <th class="listheading" rowspan=2>Letzte Buchung</th>
+     <th class="listheading" colspan=2>Eröffnungsbilanzwerte</th>
+     <th class="listheading" colspan=2>Summe für [% template_fromto %]</th>
+     <th class="listheading" colspan=2>Summe per [% template_to %]</th>
+     <th class="listheading" colspan=2>Saldo per [% template_to %]</th>
+   </tr>
+   <tr>
+    <th class="listheading">Aktiva</th>
+    <th class="listheading">Passiva</th>
+    <th class="listheading">Soll</th>
+    <th class="listheading">Haben</th>
+    <th class="listheading">Soll</th>
+    <th class="listheading">Haben</th>
+    <th class="listheading">Soll</th>
+    <th class="listheading">Haben</th>
+  
+   [% FOREACH row = ROWS %]
+    [% IF row.IS_CONTROL %]
+     [% 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 %]
+         [%- 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 %]
+
+   <tr><td colspan="[% NUM_COLUMNS %]"><hr size="3" noshade></td></tr>
+
+  </table>
+ </p>
+ [% ELSE %]
+  <p>Es wurden keine Daten gefunden.</p>
+ [% END %]
+
+ [% RAW_BOTTOM_INFO_TEXT %]
+
+ [% IF BOTTOM_INFO_TEXT %]
+  <p>[% BOTTOM_INFO_TEXT %]</p>
+ [% END %]
+
+ [% IF SHOW_EXPORT_BUTTONS %]
+  <form action="[% HTML.escape(script) %]" name="report_generator_form" method="post">
+   [% FOREACH var = EXPORT_VARIABLES %]<input type="hidden" name="report_generator_hidden_[% var.key %]" value="[% HTML.escape(var.value) %]">
+   [% END %]
+
+   <input type="hidden" name="report_generator_nextsub" value="[% HTML.escape(EXPORT_NEXTSUB) %]">
+   <input type="hidden" name="report_generator_variable_list" value="[% HTML.escape(EXPORT_VARIABLE_LIST) %]">
+   <input type="hidden" name="report_generator_dispatch_to" value="">
+   <input type="hidden" name="action" value="report_generator_dispatcher">
+
+   <p>
+    Listenexport<br>
+    [% IF ALLOW_PDF_EXPORT %]<button type="button" class="submit" onclick="submit_report_generator_form('report_generator_export_as_pdf')">Als PDF exportieren</button>[% END %]
+    [% IF ALLOW_CSV_EXPORT %]<button type="button" class="submit" onclick="submit_report_generator_form('report_generator_export_as_csv')">Als CSV exportieren</button>[% END %]
+   </p>
+  </form>
+ [% END %]
+
+</body>
diff --git a/templates/webpages/rp/html_report_susa_master.html b/templates/webpages/rp/html_report_susa_master.html
new file mode 100644 (file)
index 0000000..dbaf412
--- /dev/null
@@ -0,0 +1,120 @@
+[% USE HTML %]<body>
+
+ <script type="text/javascript">
+  <!--
+      function submit_report_generator_form(nextsub) {
+        document.report_generator_form.report_generator_dispatch_to.value = nextsub;
+        document.report_generator_form.submit();
+      }
+
+    -->
+ </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 %]
+
+ <div class="listtop" width="100%"><translate>Summen- und Saldenliste</translate> [% template_fromto %]</div>
+
+ [% IF TOP_INFO_TEXT %]
+  <p>[% TOP_INFO_TEXT %]</p>
+ [% END %]
+
+ [% RAW_TOP_INFO_TEXT %]
+
+ [% IF DATA_PRESENT %]
+ <p>
+  <table width="100%">
+   <tr>
+     <th class="listheading" rowspan=2><translate>Account Number</translate></th>
+     <th class="listheading" rowspan=2><translate>Description</translate></th>
+     <th class="listheading" rowspan=2><translate>Last Transaction</translate></th>
+     <th class="listheading" colspan=2><translate>Starting Balance</translate></th>
+     <th class="listheading" colspan=2><translate>Sum for</translate> [% template_fromto %]</th>
+     <th class="listheading" colspan=2><translate>Sum per</translate> [% template_to %]</th>
+     <th class="listheading" colspan=2><translate>Saldo per</translate> [% template_to %]</th>
+   </tr>
+   <tr>
+    <th class="listheading"><translate>Assets</translate></th>
+    <th class="listheading"><translate>Equity</translate></th>
+    <th class="listheading"><translate>Debit</translate></th>
+    <th class="listheading"><translate>Credit</translate></th>
+    <th class="listheading"><translate>Debit</translate></th>
+    <th class="listheading"><translate>Credit</translate></th>
+    <th class="listheading"><translate>Debit</translate></th>
+    <th class="listheading"><translate>Credit</translate></th>
+  
+   [% FOREACH row = ROWS %]
+    [% IF row.IS_CONTROL %]
+     [% 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 %]
+         [%- 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 %]
+
+   <tr><td colspan="[% NUM_COLUMNS %]"><hr size="3" noshade></td></tr>
+
+  </table>
+ </p>
+ [% ELSE %]
+  <p><translate>No data was found.</translate></p>
+ [% END %]
+
+ [% RAW_BOTTOM_INFO_TEXT %]
+
+ [% IF BOTTOM_INFO_TEXT %]
+  <p>[% BOTTOM_INFO_TEXT %]</p>
+ [% END %]
+
+ [% IF SHOW_EXPORT_BUTTONS %]
+  <form action="[% HTML.escape(script) %]" name="report_generator_form" method="post">
+   [% FOREACH var = EXPORT_VARIABLES %]<input type="hidden" name="report_generator_hidden_[% var.key %]" value="[% HTML.escape(var.value) %]">
+   [% END %]
+
+   <input type="hidden" name="report_generator_nextsub" value="[% HTML.escape(EXPORT_NEXTSUB) %]">
+   <input type="hidden" name="report_generator_variable_list" value="[% HTML.escape(EXPORT_VARIABLE_LIST) %]">
+   <input type="hidden" name="report_generator_dispatch_to" value="">
+   <input type="hidden" name="action" value="report_generator_dispatcher">
+
+   <p>
+    Listenexport<br>
+    [% IF ALLOW_PDF_EXPORT %]<button type="button" class="submit" onclick="submit_report_generator_form('report_generator_export_as_pdf')">Als PDF exportieren</button>[% END %]
+    [% IF ALLOW_CSV_EXPORT %]<button type="button" class="submit" onclick="submit_report_generator_form('report_generator_export_as_csv')">Als CSV exportieren</button>[% END %]
+   </p>
+  </form>
+ [% END %]
+
+</body>