AHR Abiturergebnisse.svelte 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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 rowspan="2" width="30px">Nr</th>
  13. <th rowspan="2" style="text-align: left;">Name</th>
  14. <th colspan="2" width="50px">1. Fach (LK1)</th>
  15. <th colspan="2" width="50px">2. Fach (LK2)</th>
  16. <th colspan="2" width="50px">3. Fach (GK)</th>
  17. <th colspan="2" width="50px">4. Fach (mdl)</th>
  18. <th rowspan="2" width="50px">Abitur- note</th>
  19. <th rowspan="2" width="70px">Summe Block I</th>
  20. <th rowspan="2" width="70px">vorl. Gesamt- summe</th>
  21. <th rowspan="2" width="70px">Noten- sprung</th>
  22. <th rowspan="2" width="50px">Diff</th>
  23. <th rowspan="2" width="70px">mdl Pfl.- Prfg</th>
  24. <th rowspan="2" width="70px">mdl Best.- Prfg</th>
  25. </tr>
  26. <tr>
  27. <th>Fach</th><th>Note</th>
  28. <th>Fach</th><th>Note</th>
  29. <th>Fach</th><th>Note</th>
  30. </tr>
  31. {#each slice as s, ii}
  32. <tr>
  33. <td><b>{i*anzahl+ii+1}</b></td>
  34. <td style="text-align: left;"><b>{s.Name}, {s.Vorname}</b></td>
  35. {#each s.abi_abschluss_faecher.filter(f => ['1', '2', '3', '4'].includes(f.AbiFach)).sort(f => f.AbiFach).reverse() as f}
  36. <td>{f.FachKrz}</td>
  37. <td>{f.AbiPruefErgebnis}</td>
  38. {/each}
  39. <td>{s.abi_abschluss.Note}</td>
  40. <td>{s.abi_abschluss.Punktsumme_I}</td>
  41. <td>{s.abi_abschluss.GesamtPunktzahl}</td>
  42. <td>{s.abi_abschluss.Notensprung}</td>
  43. <td>{s.abi_abschluss.Notensprung && s.abi_abschluss.GesamtPunktzahl ? (s.abi_abschluss.Notensprung-s.abi_abschluss.GesamtPunktzahl) : ''}</td>
  44. <td>{s.abi_abschluss_faecher.find(f=>f.MdlPflichtPruefung === '+') ? 'X' : ''}</td>
  45. <td>{s.abi_abschluss_faecher.find(f=>f.MdlBestPruefung === '+') ? 'X' : ''}</td>
  46. </tr>
  47. {/each}
  48. </table>
  49. </div>
  50. <div class="footer">Seite {i+1}/{Math.ceil(schueler.length/anzahl)}</div>
  51. </div>
  52. {/each}
  53. <script>
  54. import { chunk } from './helfer'
  55. import Voffset from './partials/Voffset.svelte'
  56. export let schueler, klasse
  57. const heute = () => new Date().toLocaleDateString('de', {day: '2-digit', month: '2-digit', year: 'numeric'})
  58. const anzahl = 25
  59. </script>
  60. <style>
  61. @import 'css/main.css';
  62. @import 'css/a4-landscape.css';
  63. .table-bordered {
  64. border-collapse: collapse;
  65. }
  66. .table-bordered tr th {
  67. border: thin solid #ddd;
  68. }
  69. .table-bordered tr td {
  70. border: thin solid #ddd;
  71. line-height: 1.3rem;
  72. padding: 3px;
  73. text-align: center;
  74. }
  75. </style>