AHR Abiturergebnisse.svelte 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. {#each chunk(schueler, anzahl) as slice, i}
  2. <div class="page grid" orientation="landscape" size="A4">
  3. <div class="header">
  4. <pre>
  5. Übersicht der Abiturergebnisse <b>{klasse.Klasse || schueler[0].Klasse}</b> &Tab; Stand: {heute()}
  6. </pre>
  7. </div>
  8. <div class="main">
  9. <Voffset v=1/>
  10. <table class="table-bordered" width="100%">
  11. <tr>
  12. <th width="30px">Nr</th>
  13. <th style="text-align: left;">Name</th>
  14. <th colspan="2" width="50px" class="eb">1. Fach (LK1)</th>
  15. <th colspan="2" width="50px" class="eb">2. Fach (LK2)</th>
  16. <th colspan="2" width="50px" class="eb">3. Fach (GK)</th>
  17. <th colspan="2" width="50px" class="eb">4. Fach (mdl)</th>
  18. <th width="50px">Abitur- note</th>
  19. <th width="70px">Summe Block I</th>
  20. <th width="70px">vorl. Gesamt- summe</th>
  21. <th width="70px">Noten- sprung</th>
  22. <th width="50px">Diff</th>
  23. <th width="70px">mdl Best.- Prfg</th>
  24. <th width="70px">mdl Frw.- Prfg</th>
  25. </tr>
  26. {#each slice as s, ii}
  27. <tr>
  28. <td><b>{i*anzahl+ii+1}</b></td>
  29. <td style="text-align: left;"><b>{s.Name}, {s.Vorname}</b></td>
  30. {#each s.abi_abschluss_faecher.filter(f => ['1', '2', '3', '4'].includes(f.AbiFach)).sort((a, b) => a.AbiFach - b.AbiFach) as f}
  31. <td>{f.FachKrz}</td>
  32. <td class="eb">{f.AbiPruefErgebnis || "–"}</td>
  33. {/each}
  34. <td>{s.abi_abschluss.Note || "–"}</td>
  35. <td>{s.abi_abschluss.Punktsumme_I || "–"}</td>
  36. <td>{s.abi_abschluss.GesamtPunktzahl || "–"}</td>
  37. <td>{s.abi_abschluss.Notensprung || "–"}</td>
  38. <td>{s.abi_abschluss.Notensprung && s.abi_abschluss.GesamtPunktzahl ? (s.abi_abschluss.Notensprung-s.abi_abschluss.GesamtPunktzahl) : -''}</td>
  39. <td>{s.abi_abschluss_faecher.find(f=>f.MdlBestPruefung === '+') ? 'X' : ''}</td>
  40. <td>{s.abi_abschluss_faecher.find(f=>f.MdlFreiwPruefung === '+') ? 'X' : ''}</td>
  41. </tr>
  42. {/each}
  43. </table>
  44. </div>
  45. <div class="footer">Seite {i+1}/{Math.ceil(schueler.length/anzahl)}</div>
  46. </div>
  47. {/each}
  48. <script>
  49. import { chunk } from './helfer'
  50. import Voffset from './partials/Voffset.svelte'
  51. export let schueler, klasse
  52. const heute = () => new Date().toLocaleDateString('de', {day: '2-digit', month: '2-digit', year: 'numeric'})
  53. const anzahl = 25
  54. </script>
  55. <style>
  56. @import 'css/main.css';
  57. .table-bordered {
  58. border-collapse: collapse;
  59. }
  60. .table-bordered tr th {
  61. border: thin solid #ddd;
  62. }
  63. .table-bordered tr td {
  64. border: thin solid #ddd;
  65. line-height: 1.3rem;
  66. padding: 3px;
  67. text-align: center;
  68. }
  69. .eb { border-right: solid !important;}
  70. </style>