AHR Abiturergebnisse.svelte 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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 { datum, chunk } from './helfer'
  55. import Voffset from './partials/Voffset.svelte'
  56. export let schueler, schule, privat, jahr, abschnitt, klasse
  57. const aktHalbjahr = (a) => a.Jahr === jahr && a.Abschnitt === abschnitt
  58. const heute = () => new Date().toLocaleDateString('de', {day: '2-digit', month: '2-digit', year: 'numeric'})
  59. const anzahl = 25
  60. </script>
  61. <style>
  62. @import 'css/main.css';
  63. @import 'css/a4-landscape.css';
  64. .table-bordered {
  65. border-collapse: collapse;
  66. }
  67. .table-bordered tr th {
  68. border: thin solid #ddd;
  69. }
  70. .table-bordered tr td {
  71. border: thin solid #ddd;
  72. line-height: 1.3rem;
  73. padding: 3px;
  74. text-align: center;
  75. }
  76. .table-eng {
  77. margin-bottom: 0;
  78. }
  79. </style>