package DMML; use strict; use warnings; use DBI; use Data::Dumper; our (@FIELDS,$OUTPUT); sub new { my $class = shift; my $self = {}; return bless $self, $class; } sub detail_report { my $self = shift; open DETAIL, '>', \$OUTPUT or die $!; return $self->write_report(format => 'DETAIL', @_); } sub summary_report { my $self = shift; open SUMMARY, '>', \$OUTPUT or die $!; return $self->write_report(format => 'DETAIL', @_); } sub write_report { my $self = shift; my %args = @_; $~ = $args{format}; for (@{ $args{records} }) { @FIELDS = @$_; write; } $~ = $args{format} . '_BOTTOM'; @FIELDS = @{ $args{total} }; write; return $OUTPUT; } format DETAIL_TOP = COUNT #PAGES FIRST LAST MEMBER# POSTAL ADDRESS PRODUCT JOB# ------------------------------------------------------------------------------------------------------------------------ . format DETAIL = @>>>>> @>>>>> @>>>>>>>> @>>>>>>>> @>>>>>>>> @>>>>>>>>>>>>>>>>>>>>>>>>> @>>>>>>>>>>>>>>>>>>>>>>>>>> @>>>>>> @>>>>>> @FIELDS . format DETAIL_BOTTOM = @>>>>> @>>>>> @FIELDS . format SUMMARY_TOP = FormType #Kits #Pages ------------------------------------------ . format SUMMARY = @<<<<<<<<<<< @>>>>> @>>>>> @FIELDS . format SUMMARY_BOTTOM = ========================================== @<<<<<<<< @<<<< @>>>>>> @>>>>>> @FIELDS . 1;