#!/usr/local/bin/perl -w % eventreport.pl-Copyright 1997-2000 Regents of the University of California % All rights reserved. % Author: Andrew J. Perrin (aperrin@demog.berkeley.edu) % This code may be distributed and used as long as credit and copyright % notices are preserved. use strict; use vars qw/$dbh $opt_p $opt_e/; #use lib qw|/home/davis/app2/dt2|; use DemogTrak qw/safeTeX/; use Getopt::Std; # This script takes an (optional) where string on argv and prints a latex # report with the individual information and event list. sub print_latex_header { print qq|\\documentclass{article}\n\n|; print qq|\\begin{document}\n|; my $title = 'Demography Event Report'; print qq|\\title{$title}\n|; print qq|\\author{DemogTrak}\n|; print qq|\\maketitle\n|; print qq|\\begin{description}\n|; print qq|\\item[Persons selected] \\begin\{verbatim\} | , qq|$opt_p \\end\{verbatim\}\n| if $opt_p; print qq|\\item[Events selected] \\begin\{verbatim\} | , qq|$opt_e \\end\{verbatim\}\n| if $opt_e; print qq|\\end{description}\n|; print qq|\\begin{description}\n\n|; } sub print_latex_footer { print qq|\n\\end{description}\n\n|; print qq|\\end{document}\n\n|; } sub print_latex_item { my $person = shift; my $line; $Channel::_debug && warn "print_latex_item for id " . $person->{id} . "\n"; print '\\item[', $person->namestring , "] "; if ($person->{e_mail}) { print $person->{e_mail}, "\\\\\n"; } else { print "No e-mail \\\\\n"; } my $useaddress = 'a'; if ($person->{useaddress}) { $useaddress = lc(substr($person->{useaddress}, -1)); } my $addrstr = "address$useaddress"; foreach my $usenr (1,2) { my $use = "$addrstr$usenr"; if ($person->{$use}) { $line = $person->{$use} . " \\\\\n"; print safeTeX($line); } } $line = $person->{"city$useaddress"} . ', ' . $person->{"state$useaddress"} . ' ' . $person->{"zip$useaddress"} . ' ' . $person->{"country$useaddress"}; $line = safeTeX($line); print "$line \\\\\n" if $line; my $where = 'id = ' . $person->{id}; $where .= " AND $opt_e" if $opt_e; my @events = get Event($where, $dbh, 'date_effective, date_expires'); if (@events) { print "\\begin{description}\n"; foreach(@events) { print "\\item[" , $_->{date_effective}; print '--', $_->{date_expires} if $_->{date_expires}; print "]\n"; print safeTeX($_->lineout($dbh)), "\n"; # print "$line\n"; } print "\\end{description}\n"; } print "\n\n"; } #Main getopts('p:e:'); $dbh = new Channel({debug=>0}); my @people; if ($opt_p) { @people = get Person($opt_p, $dbh); } else { @people = get Person('', $dbh); } print_latex_header; foreach (@people) { print_latex_item($_); } print_latex_footer;