|
Lines 19-25
Link Here
|
| 19 |
|
19 |
|
| 20 |
|
20 |
|
| 21 |
use CGI qw/-utf8/; |
21 |
use CGI qw/-utf8/; |
| 22 |
use Text::CSV; |
22 |
use Text::CSV::Encoded; |
| 23 |
use URI::Escape; |
23 |
use URI::Escape; |
| 24 |
use File::Temp; |
24 |
use File::Temp; |
| 25 |
use C4::Reports::Guided; |
25 |
use C4::Reports::Guided; |
|
Lines 772-778
elsif ($phase eq 'Run this report'){
Link Here
|
| 772 |
} |
772 |
} |
| 773 |
|
773 |
|
| 774 |
elsif ($phase eq 'Export'){ |
774 |
elsif ($phase eq 'Export'){ |
| 775 |
binmode STDOUT, ':encoding(UTF-8)'; |
|
|
| 776 |
|
775 |
|
| 777 |
# export results to tab separated text or CSV |
776 |
# export results to tab separated text or CSV |
| 778 |
my $sql = $input->param('sql'); # FIXME: use sql from saved report ID#, not new user-supplied SQL! |
777 |
my $sql = $input->param('sql'); # FIXME: use sql from saved report ID#, not new user-supplied SQL! |
|
Lines 789-796
elsif ($phase eq 'Export'){
Link Here
|
| 789 |
} else { |
788 |
} else { |
| 790 |
my $delimiter = C4::Context->preference('delimiter') || ','; |
789 |
my $delimiter = C4::Context->preference('delimiter') || ','; |
| 791 |
my $csv_content = q||; |
790 |
my $csv_content = q||; |
| 792 |
my $csv = Text::CSV->new({binary => 1, sep_char => $delimiter}); |
791 |
my $csv = Text::CSV::Encoded->new({ encoding_out => 'utf8', sep_char => $delimiter}); |
| 793 |
$csv or die "Text::CSV->new({binary => 1}) FAILED: " . Text::CSV->error_diag(); |
792 |
$csv or die "Text::CSV::Encoded->new({binary => 1}) FAILED: " . Text::CSV::Encoded->error_diag(); |
| 794 |
if ($csv->combine(header_cell_values($sth))) { |
793 |
if ($csv->combine(header_cell_values($sth))) { |
| 795 |
$csv_content .= $csv->string(). "\n"; |
794 |
$csv_content .= $csv->string(). "\n"; |
| 796 |
} else { |
795 |
} else { |
| 797 |
- |
|
|