Здравствуйте! Вожусь с каракулями в заголовках отчета. Все делал по вашему описанию, но видимо я что-то не догоняю. В программировании я 0. Помогите, пожалуйста, с экспортом в excel. Сейчас попробую изложить, что я имею:
1) Linux (none) 3.2.0-0.bpo.4-amd64 #1 SMP Debian 3.2.46-1+deb7u1~bpo60+1 x86_64
2) root@(none):/opt/otrs/bin# /opt/otrs/bin/otrs.CheckModules.pl
o Crypt::Eksblowfish::Bcrypt.......ok (v0.008)
o Crypt::SSLeay....................ok (v0.57)
o Date::Format.....................ok (v2.24)
o DBI..............................ok (v1.612)
o DBD::mysql.......................ok (v4.016)
o DBD::ODBC........................ok (v1.24)
o DBD::Oracle......................Not installed! (optional - Required to conn ect to a Oracle database.)
o DBD::Pg..........................ok (v2.17.1)
o Encode::HanExtra.................ok (v0.23)
o GD...............................ok (v2.39)
o GD::Text.......................ok (v0.86)
o GD::Graph......................ok (v1.44)
o IO::Socket::SSL..................ok (v1.33)
o JSON::XS.........................ok (v2.29)
o List::Util::XS...................ok (v1.21)
o LWP::UserAgent...................ok (v6.05)
o Mail::IMAPClient.................ok (v3.25)
o IO::Socket::SSL................ok (v1.33)
o ModPerl::Util....................ok (v2.000004)
o Net::DNS.........................ok (v0.66)
o Net::LDAP........................ok (v0.4001)
o Net::SSL.........................ok (v2.84)
o PDF::API2........................ok (v2.015)
o Compress::Zlib.................ok (v2.020)
o Text::CSV_XS.....................ok (v0.73)
o Time::HiRes......................ok (v1.9719)
o XML::Parser......................ok (v2.36)
o YAML::XS.........................ok (v0.33)
3) TARGET/SHARE/var/otrs/Kernel/System/CSV.pm
Код: Выделить всё
...
use strict;
use warnings;
use Text::CSV;
use Text::CSV::Encoded;
...
# create new csv backend object
my $CSV;
if ( !defined $Param{Encode} ) {
$CSV = Text::CSV->new(
{
quote_char => $Param{Quote},
escape_char => $Param{Quote},
sep_char => $Param{Separator},
eol => '',
always_quote => 1,
binary => 1,
keep_meta_info => 0,
allow_loose_quotes => 0,
allow_loose_escapes => 0,
allow_whitespace => 0,
verbatim => 0,
}
);
}
else {
# create new csv backend object
$CSV = Text::CSV::Encoded->new( # ram
{
quote_char => $Param{Quote},
escape_char => $Param{Quote},
sep_char => $Param{Separator},
eol => '',
always_quote => 1,
binary => 1,
keep_meta_info => 0,
allow_loose_quotes => 0,
allow_loose_escapes => 0,
allow_whitespace => 0,
verbatim => 0,
encoding_in => "utf-8", # the encoding comes into Perl ram
encoding_out => $Param{Encode}, # the encoding comes out of Perl ram
}
);
}
4) TARGET/SHARE/var/otrs/Kernel/Modules/AdminStats.pm
Код: Выделить всё
...
# csv output
if ( $Param{Format} eq 'CSV' ) {
my ( $s, $m, $h, $D, $M, $Y )
= $Self->{TimeObject}->SystemTime2Date(
SystemTime => $Self->{TimeObject}->SystemTime(),
);
my $Time = sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $Y, $M, $D, $h, $m, $s );
my $Output;
# get Separator from language file
my $UserCSVSeparator = $Self->{LayoutObject}->{LanguageObject}->{Separator};
if ( $Self->{ConfigObject}->Get('PreferencesGroups')->{CSVSeparator}->{Active} ) {
my %UserData = $Self->{UserObject}->GetUserData( UserID => $Self->{UserID} );
$UserCSVSeparator = $UserData{UserCSVSeparator} if $UserData{UserCSVSeparator};
}
$Output .= $Self->{CSVObject}->Array2CSV(
Head => $HeadArrayRef,
Data => \@StatArray,
Separator => $UserCSVSeparator,
Encode => 'cp1251',
);
return $Self->{LayoutObject}->Attachment(
Filename => $Filename . '.csv',
ContentType => "text/csv",
Content => $Output,
);
}
...
P.S. Пробовал по-всякому. Это окончательный, как я понял наиболее правильный вариант. Но все равно с ним не работает. веб-интерфейс ругается так, что даже главная страница не грузится. В некоторых случаях (правках) ругается в момент, когда захожу в раздел отчетов. Убил много времени. Заранее спасибо.