in reply to Controlling order of fields in report
sample code snippet(Uses selectall_arrayref):
my %Rec = ( # Table names, and Field attribs+Processing methods messages =>[ ["id", sub{sprintf "%3d",@_}], ["date", ,\&MyDateConverter], ["body", sub{substr($_[0] . " " x 26,0,26)}], #Max 2 +6 ["fromid", sub{substr($user[$_[0]],0,10) . "->"}], ["toid", sub{"->" .substr($user[$_[0]],0,10)}], ["computerid",sub{substr($computer[$_[0]],0,10)}], ["contenttypeid", sub{substr($contenttype[$_[0]],0,10 +)}], ["cs_call_id", sub{$_[0]}] ], usagesummary =>[ ["id", sub{sprintf "%3d",@_}], ["date", \&MyDateConverter], ["fromid", sub{substr($user[$_[0]],0,10) . "->"}], ["toid", sub{"->" .substr($user[$_[0]],0,10)}], ["messagecount", sub{sprintf "%3d msgs",@_}], ["cs_call_id", sub{$_[0]}] ] ); my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); exists $ENV{TZ} or $ENV{TZ}= $isdst? "PDT" : "PST"; Load_Table("users", \@user , 0); Load_Table("computers", \@computer, 1); Load_Table("contenttypes",\@contenttype, 0); Load_Table("DbConfigInt", \%DbConfigInt, 1); Print_Details($_) for sort keys %Rec; #--------------------------------------- sub Load_Table{ my ($tableName,$arrayref,$printIt)=@_; my $count = 0; for ( @{$dbh->selectall_arrayref("SELECT * FROM $tableName")} ){ $count++; $printIt and print "\t $_->[0]\t$_->[1] [$tableName]\n"; if (ref($arrayref) eq "HASH"){ $arrayref->{$_->[0]} = $_->[1]; next; } $arrayref->[$_->[0]] = $_->[1]; # Index by Number, get the name. } print "\t---- Loaded $count entries from $tableName.\n"; }
"As you get older three things happen. The first is your memory goes, and I can't remember the other two... " - Sir Norman Wisdom
|
|---|