Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 27bdd44b

Von Moritz Bunkus vor mehr als 17 Jahren hinzugefügt

  • ID 27bdd44b8c9c45f438138076938935df43977f86
  • Vorgänger a45bac39
  • Nachfolger 68bd0229

ReportGenerator: Die Spaltendatenfelder 'data' und 'link' können jetzt auch Array-Referenzen sein, die in der Zelle zeilenweise ausgegeben werden.

Unterschiede anzeigen:

SL/ReportGenerator.pm
93 93
  my $last_row_set;
94 94

  
95 95
  while (my $arg = shift) {
96
    my $row_set;
97

  
96 98
    if ('ARRAY' eq ref $arg) {
97
      push @{ $self->{data} }, $arg;
98
      $last_row_set = $arg;
99
      $row_set = $arg;
99 100

  
100 101
    } elsif ('HASH' eq ref $arg) {
101
      my $row_set = [ $arg ];
102
      push @{ $self->{data} }, $row_set;
103
      $last_row_set = $row_set;
102
      $row_set = [ $arg ];
104 103

  
105 104
    } else {
106 105
      $self->{form}->error('Incorrect usage -- expecting hash or array ref');
107 106
    }
107

  
108
    foreach my $row (@{ $row_set }) {
109
      foreach my $field (qw(data link)) {
110
        map { $row->{$_}->{$field} = [ $row->{$_}->{$field} ] if (ref $row->{$_}->{$field} ne 'ARRAY') } keys %{ $row };
111
      }
112
    }
113

  
114
    push @{ $self->{data} }, $row_set;
115
    $last_row_set = $row_set;
108 116
  }
109 117

  
110 118
  return $last_row_set;
......
259 267
    foreach my $row (@{ $row_set }) {
260 268
      $inner_idx++;
261 269

  
262
      map { $row->{$_}->{data} = $self->html_format($row->{$_}->{data}) } @visible_columns;
270
      foreach my $col_name (@visible_columns) {
271
        my $col = $row->{$col_name};
272
        $col->{CELL_ROWS} = [ ];
273
        foreach my $i (0 .. scalar(@{ $col->{data} })) {
274
          push @{ $col->{CELL_ROWS} }, {
275
            'data' => $self->html_format($col->{data}->[$i]),
276
            'link' => $col->{link}->[$i],
277
          };
278
        };
279
      }
263 280

  
264 281
      my $row_data = {
265 282
        'COLUMNS'       => [ map { $row->{$_} } @visible_columns ],
......
458 475
  foreach my $row_set (@{ $self->{data} }) {
459 476
    next if ('ARRAY' ne ref $row_set);
460 477
    foreach my $row (@{ $row_set }) {
461
      map { $row->{$_}->{data} =~ s/\r?\n/$eol/g } @visible_columns;
462
      $csv->print($stdout, [ map { $row->{$_}->{data} } @visible_columns ]);
478
      my @data;
479
      foreach my $col (@visible_columns) {
480
        push @data, join($eol, map { s/\r?\n/$eol/g; $_ } @{ $row->{$col}->{data} });
481
      }
482
      $csv->print($stdout, \@data);
463 483
    }
464 484
  }
465 485
}
bin/mozilla/gl.pl
580 580

  
581 581
    map { $row->{$_}->{data} = $ref->{$_} } qw(id reference description source notes);
582 582

  
583
    map { $row->{$_}->{data} = join "\n", @{ $rows{$_} }; } qw(transdate debit credit);
584

  
585
    map { $row->{$_}->{data} = join "\n", @{ $rows{$_} } if ($ref->{"${_}_accno"} ne "") } qw(debit_tax credit_tax);
583
    map { $row->{$_}->{data} = \@{ $rows{$_} }; } qw(transdate debit credit debit_accno credit_accno debit_tax_accno credit_tax_accno);
586 584

  
587 585
    foreach my $col (qw(debit_accno credit_accno debit_tax_accno credit_tax_accno)) {
588
      if (lc $report->{options}->{output_format} eq 'html') {
589
        $row->{$col}->{raw_data} = join "<br>", map { "<a href=\"${callback}&accno=" . E($_) . "\">$_</a>" } @{ $rows{$col} };
590
      } else {
591
        $row->{$col}->{data} = join "\n", @{ $rows{$col} };
592
      }
586
      $row->{$col}->{link} = [ map { "${callback}&accno=" . E($_) } @{ $rows{$col} } ];
593 587
    }
594 588

  
589
    map { $row->{$_}->{data} = \@{ $rows{$_} } if ($ref->{"${_}_accno"} ne "") } qw(debit_tax credit_tax);
590

  
595 591
    $row->{reference}->{link} = build_std_url("script=$ref->{module}.pl", 'action=edit', 'id=' . E($ref->{id}), 'callback');
596 592

  
597 593
    my $row_set = [ $row ];
templates/webpages/report_generator/html_report_de.html
35 35
     <TMPL_IF IS_SEPARATOR><tr><td colspan="<TMPL_VAR NUM_COLUMNS>"><hr size="3" noshade></td></tr></TMPL_IF>
36 36
     <TMPL_ELSE>
37 37
     <tr class="listrow<TMPL_VAR outer_idx_odd>">
38
      <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>
38
      <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_LOOP CELL_ROWS><TMPL_IF data><TMPL_IF link><a href="<TMPL_VAR link>"></TMPL_IF><TMPL_VAR data><TMPL_IF link></a></TMPL_IF></TMPL_IF><TMPL_UNLESS __last__><br></TMPL_UNLESS></TMPL_LOOP></td>
39 39
      </TMPL_LOOP>
40 40
     </tr>
41 41
    </TMPL_IF>
templates/webpages/report_generator/html_report_master.html
35 35
     <TMPL_IF IS_SEPARATOR><tr><td colspan="<TMPL_VAR NUM_COLUMNS>"><hr size="3" noshade></td></tr></TMPL_IF>
36 36
     <TMPL_ELSE>
37 37
     <tr class="listrow<TMPL_VAR outer_idx_odd>">
38
      <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>
38
      <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_LOOP CELL_ROWS><TMPL_IF data><TMPL_IF link><a href="<TMPL_VAR link>"></TMPL_IF><TMPL_VAR data><TMPL_IF link></a></TMPL_IF></TMPL_IF><TMPL_UNLESS __last__><br></TMPL_UNLESS></TMPL_LOOP></td>
39 39
      </TMPL_LOOP>
40 40
     </tr>
41 41
    </TMPL_IF>
templates/webpages/report_generator/pdf_report_de.html
17 17

  
18 18
    <TMPL_LOOP ROWS>
19 19
     <tr>
20
      <TMPL_LOOP COLUMNS><td<TMPL_IF align> align="<TMPL_VAR align>"</TMPL_IF><TMPL_IF valign> valign="<TMPL_VAR valign>"</TMPL_IF>><TMPL_IF data><TMPL_VAR data></TMPL_IF></td></TMPL_LOOP>
20
      <TMPL_LOOP COLUMNS><td<TMPL_IF align> align="<TMPL_VAR align>"</TMPL_IF><TMPL_IF valign> valign="<TMPL_VAR valign>"</TMPL_IF>><TMPL_LOOP CELL_ROWS><TMPL_IF data><TMPL_VAR data></TMPL_IF><TMPL_UNLESS __last__><br></TMPL_UNLESS></TMPL_LOOP></td></TMPL_LOOP>
21 21
     </tr>
22 22
    </TMPL_LOOP>
23 23

  
templates/webpages/report_generator/pdf_report_master.html
17 17

  
18 18
    <TMPL_LOOP ROWS>
19 19
     <tr>
20
      <TMPL_LOOP COLUMNS><td<TMPL_IF align> align="<TMPL_VAR align>"</TMPL_IF><TMPL_IF valign> valign="<TMPL_VAR valign>"</TMPL_IF>><TMPL_IF data><TMPL_VAR data></TMPL_IF></td></TMPL_LOOP>
20
      <TMPL_LOOP COLUMNS><td<TMPL_IF align> align="<TMPL_VAR align>"</TMPL_IF><TMPL_IF valign> valign="<TMPL_VAR valign>"</TMPL_IF>><TMPL_LOOP CELL_ROWS><TMPL_IF data><TMPL_VAR data></TMPL_IF><TMPL_UNLESS __last__><br></TMPL_UNLESS></TMPL_LOOP></td></TMPL_LOOP>
21 21
     </tr>
22 22
    </TMPL_LOOP>
23 23

  

Auch abrufbar als: Unified diff