Revision 27bdd44b
Von Moritz Bunkus vor mehr als 17 Jahren hinzugefügt
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
ReportGenerator: Die Spaltendatenfelder 'data' und 'link' können jetzt auch Array-Referenzen sein, die in der Zelle zeilenweise ausgegeben werden.