{#each chunk(schueler, anzahl) as slice, i} <div class="page grid" orientation="landscape" size="A3"> <div class="header"> <pre> Konferenzliste APA BK Berufsabschluss <b>{klasse.Klasse || schueler[0].Klasse}</b> 	 {aktAbschnitt().klassenlehrer_in}: <b>{`${aktAbschnitt().lehrer.Vorname} ${aktAbschnitt().lehrer.Nachname} (${aktAbschnitt().lehrer.Kuerzel})`}</b> 	 Stand: {heute()} </pre> </div> <div class="main"> {#each slice as s, ii} <b>{(i*anzahl)+ii+1}. {s.Name}, {s.Vorname}</b> <div class="flex-grid"> <div class="tabelle"> <table> {#each zeilen(faecher(s)) as row} <tr> {#each row as cell} <td>{cell}</td> {/each} </tr> {/each} </table> </div> <div class="bemerkungen"> Bermerkungen: {#each '12345' as i} <hr> <Voffset v=2 /> {/each} </div> </div> <Voffset v=1 /> {/each} </div> <div class="footer">Seite {i+1}/{Math.ceil(schueler.length/anzahl)}</div> </div> {/each} <script> import { datum, chunk, punkte2note } from './helfer' import Voffset from './partials/Voffset.html' export let schueler, schule, privat, jahr, abschnitt, klasse const anzahl = 5 const heute = () => new Date().toLocaleDateString('de', {day: '2-digit', month: '2-digit', year: 'numeric'}) const aktAbschnitt = () => schueler[0].abschnitte.slice(-1)[0] function faecher (s) { return s.abi_abschluss_faecher.filter(f => f.fach.Fachgruppe_ID !== 30).sort((a,b) => a.FSortierung - b.FSortierung) } function zeilen (faecher) { const arr = [[''], ['13.1'], ['13.2'], ['VN'], ['SP'], ['BA']] faecher.forEach(f => { const anzahlNoten = [f.P13_1, f.P13_2].filter(n => parseInt(n) > 0).length const vornote = Math.round((parseFloat(f.P13_1 || 0.0) + parseFloat(f.P13_2 || 0.0)) / anzahlNoten) arr[0].push(f.FachKrz) arr[1].push(punkte2note(f.P13_1) || '') arr[2].push(punkte2note(f.P13_2) || '') arr[3].push(parseInt(punkte2note(vornote)) || '–') arr[4].push('123'.includes(f.AbiFach) ? (punkte2note(parseInt(f.AbiPruefErgebnis)) || '') : '') if ('123'.includes(f.AbiFach) && !f.AbiPruefErgebnis) arr[5].push('…') else arr[5].push(parseInt(punkte2note('123'.includes(f.AbiFach) ? (Math.round((vornote + parseInt(f.AbiPruefErgebnis))/2)) : vornote))) }) return arr } </script> <style> @import 'css/main.css'; @import 'css/a3-landscape.css'; table { width: 98%; border-collapse: collapse; } table td { border: thin solid #ddd; white-space:nowrap; text-align: center; } .flex-grid { display: flex; } .tabelle { flex: 65%; } .bemerkungen { flex: 35%; } </style>