Business-ReportWriter
view release on metacpan or search on metacpan
ex/inventory.xml view on Meta::CPAN
<item key="search" >
<hashref>
<item key="!Fields" >sku,quantity,description,category</item>
<item key="!Table" >inventory, products</item>
<item key="!TabJoin" >inventory JOIN products USING (sku)</item>
<item key="$order" >category</item>
</hashref>
</item>
<item key="report" >
<hashref>
<item key="locale" >en_US</item>
<item key="papersize" >A4</item>
</hashref>
</item>
<item key="breaks" >
<hashref>
<item key="quantity" >
<hashref>
<item key="font" >
<hashref>
<item key="face" >Helvetica-Bold</item>
ex/jrnllist.xml view on Meta::CPAN
<item key="0" >10000</item>
<item key="1" >19999</item>
<item key="2" >2003-1-1</item>
<item key="3" >2003-3-1</item>
</arrayref>
</item>
</hashref>
</item>
<item key="report" >
<hashref>
<item key="locale" >da_DK</item>
<item key="papersize" >A4</item>
</hashref>
</item>
<item key="breaks" >
<hashref>
<item key="_total" >
<hashref>
<item key="format" >%.2f</item>
<item key="order" >2</item>
<item key="text" />
ex/trialbal.xml view on Meta::CPAN
<item key="2">2002-1-1</item>
<item key="3">2002-12-31</item>
</arrayref>
</item>
<item key="$where">number BETWEEN ? AND ?
AND accountingdate BETWEEN ? AND ?</item>
</hashref>
</item>
<item key="report">
<hashref>
<item key="locale">da_DK</item>
<item key="papersize">A4</item>
</hashref>
</item>
<item key="breaks">
<hashref>
<item key="_total">
<hashref>
<item key="format">%.2f</item>
<item key="order">1</item>
<item key="text"></item>
lib/Business/ReportWriter.pm view on Meta::CPAN
package Business::ReportWriter;
use strict;
use POSIX qw(setlocale LC_NUMERIC);
sub new {
my ( $class, %parms ) = @_;
my $self = {};
$self = bless $self, $class;
return $self;
}
lib/Business/ReportWriter.pm view on Meta::CPAN
sub make_func {
my ( $self, $rec, $func ) = @_;
my @fields = ( $func =~ /\$(\w*)/g );
for my $field (@fields) {
$func =~ s/\$$field/\$rec->{$field}/g;
}
my $text;
setlocale( LC_NUMERIC, $self->{report}{locale} );
eval( '$text = ' . $func );
setlocale( LC_NUMERIC, "C" );
return $text;
}
1;
__END__
=head1 NAME
Business::ReportWriter - A Business Oriented ReportWriter.
lib/Business/ReportWriter.pm view on Meta::CPAN
A hash reference describing the wanted output. Contains these sections:
=over 4
=item report
=back
Hash with report wide information. Possible entries:
I<locale> - eg us_EN, da_DK...
I<papersize> - A4, Letter...
=head3 breaks
A hash defining the line breaks / report totals. Hash key is the name of
the field to totl, pointing to a new hash containing
I<order> Sort order of break, starting from 0. Must be unique.
lib/Business/ReportWriter/OOCalc.pm view on Meta::CPAN
package Business::ReportWriter::OOCalc;
use strict;
use POSIX qw(setlocale LC_NUMERIC);
use utf8;
use OpenOffice::OOCBuilder;
use base 'Business::ReportWriter';
sub begin_line {
my ( $self, $rec ) = @_;
$self->{rownr}++;
$self->{fieldnr} = 0;
lib/Business/ReportWriter/Pdf.pm view on Meta::CPAN
package Business::ReportWriter::Pdf;
use strict;
use POSIX qw(setlocale LC_NUMERIC);
use utf8;
use base 'Business::ReportWriter';
sub init_fields {
my ( $self, $parms ) = @_;
$self->SUPER::fields($parms);
my @fields = @$parms if $parms;
( run in 0.970 second using v1.01-cache-2.11-cpan-ceb78f64989 )