From c8c71f84657d8f613e869eb9a9a8194eaacde666 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Thu, 2 Jan 2025 17:42:13 +0100 Subject: [PATCH] Preliminary longtable version of attendance sheet. --- src/export-sheet.scm | 47 +++++++++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/src/export-sheet.scm b/src/export-sheet.scm index 3dc9c29..a88dd33 100644 --- a/src/export-sheet.scm +++ b/src/export-sheet.scm @@ -35,6 +35,7 @@ (chicken base) (chicken string) (chicken format) + (chicken sort) srfi-1 mbase brmember @@ -47,31 +48,42 @@ cal-day) (define (print-attendance-sheet MB number) - (print "\\documentclass[10pt]{article}") - (print "\\usepackage[top=1cm,left=1cm,right=2cm,bottom=2cm]{geometry}") - (print "\\begin{document}") - (print "\\begin{center}") + (print "\\documentclass{article}") + (print "\\usepackage{fancyhdr}") + (print "\\usepackage{longtable}") + (print "\\usepackage{lastpage}") + (print "\\usepackage[top=3cm,left=1cm,right=2cm,bottom=3cm]{geometry}") + (print "\\lhead{}") (print (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 (cal-day-day (*current-day*)) (cal-day-month (*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) (print "\\vskip1em") (newline) (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 (format - "\\begin{tabular}{|~A|}" + "\\begin{longtable}{|~A|}" (string-intersperse (map (lambda (x) - (if (symbol? x) - "l" "r")) + (if (list? x) + "r" "l")) colnames) "|"))) (print "\\hline") @@ -83,17 +95,24 @@ "\\textbf{~A}" (if (symbol? x) (symbol->string x) - (symbol->string (car x))))) + (if (string? x) + x + (symbol->string (car x)))))) colnames) "&") "\\\\") (print "\\hline") + (print "\\endhead") (define valid-voters 0) (define ok-balances 0) (define ok-actives 0) - (let loop ((mrs (find-members-by-predicate - MB (lambda (mr) - (brmember-active? mr))))) + (let loop ((mrs (sort + (find-members-by-predicate + MB (lambda (mr) + (brmember-active? mr))) + (lambda (a b) + (string