Preliminary longtable version of attendance sheet.

This commit is contained in:
Dominik Pantůček 2025-01-02 17:42:13 +01:00
parent 6cfdf705c8
commit c8c71f8465

View file

@ -35,6 +35,7 @@
(chicken base) (chicken base)
(chicken string) (chicken string)
(chicken format) (chicken format)
(chicken sort)
srfi-1 srfi-1
mbase mbase
brmember brmember
@ -47,31 +48,42 @@
cal-day) cal-day)
(define (print-attendance-sheet MB number) (define (print-attendance-sheet MB number)
(print "\\documentclass[10pt]{article}") (print "\\documentclass{article}")
(print "\\usepackage[top=1cm,left=1cm,right=2cm,bottom=2cm]{geometry}") (print "\\usepackage{fancyhdr}")
(print "\\begin{document}") (print "\\usepackage{longtable}")
(print "\\begin{center}") (print "\\usepackage{lastpage}")
(print "\\usepackage[top=3cm,left=1cm,right=2cm,bottom=3cm]{geometry}")
(print "\\lhead{}")
(print (print
(format (format
"Prezenční listina ~A. Valné Hromady brmlab z.s. konané ~A. ~A. ~A v sídle spolku" "\\chead{Prezenční listina ~A. Valné Hromady brmlab z.s. konané ~A. ~A. ~A v sídle spolku}"
number number
(cal-day-day (*current-day*)) (cal-day-day (*current-day*))
(cal-day-month (*current-day*)) (cal-day-month (*current-day*))
(cal-day-year (*current-day*)) (cal-day-year (*current-day*))
)) ))
(print "\\rhead{}")
(print "\\renewcommand{\\headrulewidth}{0pt}")
(print "\\lfoot{}")
(print "\\cfoot{Strana \\thepage{} ze \\pageref*{LastPage}}")
(print "\\rfoot{}")
(print "\\pagestyle{fancy}")
(print "\\begin{document}")
(print "\\begin{center}")
(newline) (newline)
(print "\\vskip1em") (print "\\vskip1em")
(newline) (newline)
(define colnames (define colnames
'((id) Nick Name Surname (Fee) (Balance) B (Active) A OK? Signature)) '((id) Nick "Jméno" "Příjmení" (Fee) (Balance) B (Active) A OK? Signature))
(print "\\renewcommand\\arraystretch{2.0}")
(print (print
(format (format
"\\begin{tabular}{|~A|}" "\\begin{longtable}{|~A|}"
(string-intersperse (string-intersperse
(map (map
(lambda (x) (lambda (x)
(if (symbol? x) (if (list? x)
"l" "r")) "r" "l"))
colnames) colnames)
"|"))) "|")))
(print "\\hline") (print "\\hline")
@ -83,17 +95,24 @@
"\\textbf{~A}" "\\textbf{~A}"
(if (symbol? x) (if (symbol? x)
(symbol->string x) (symbol->string x)
(symbol->string (car x))))) (if (string? x)
x
(symbol->string (car x))))))
colnames) colnames)
"&") "&")
"\\\\") "\\\\")
(print "\\hline") (print "\\hline")
(print "\\endhead")
(define valid-voters 0) (define valid-voters 0)
(define ok-balances 0) (define ok-balances 0)
(define ok-actives 0) (define ok-actives 0)
(let loop ((mrs (find-members-by-predicate (let loop ((mrs (sort
MB (lambda (mr) (find-members-by-predicate
(brmember-active? mr))))) MB (lambda (mr)
(brmember-active? mr)))
(lambda (a b)
(string<? (brmember-nick a)
(brmember-nick b))))))
(when (not (null? mrs)) (when (not (null? mrs))
(let* ((mr (car mrs)) (let* ((mr (car mrs))
(info (ldict-ref mr 'info)) (info (ldict-ref mr 'info))
@ -170,7 +189,7 @@
" \\\\") " \\\\")
(print "\\hline") (print "\\hline")
(loop (cdr mrs))))) (loop (cdr mrs)))))
(print "\\end{tabular}") (print "\\end{longtable}")
(print "\\end{center}") (print "\\end{center}")
(print "\\end{document}") (print "\\end{document}")
(print "% valid-voters = " valid-voters) (print "% valid-voters = " valid-voters)