Serienbrieffunktion für mehr als nur Briefe

Hallo,
ich habe ein Problem mit folgendem Anwendungsfall.
Ein Lehrer schreibt eine Klassenarbeit und muss als Korrektur ein Protokoll schreiben.

Jeder Schüler sieht in dem Protokoll sollen Daten wie der Namen, die erreichte Punktzahl in den einzelnen Aufgaben, Gesamtpunktzahl, Note und ein Bewertungstext, in dem die Benotung nochmal begründet wird, stehen.

Wie kann man das machen, ohne, dass das Protokoll einfach immer Kopiert und die entsprechenden Felder manuell an den jeweiligen Schüler angepasst wird?
Dieser Weg hat mehrere Nachteile:

  1. Es ist langsam: Man muss mit der Maus zu all den Stellen springen, die man anpassen muss.
  2. Es ist Fehleranfällig: Wenn man ein Feld übersieht, hat der Schüler bspw. die Punkte eines anderen in seinem Protokoll stehen. Oder wenn man sich verklickt, ist eine Tabellenspalte auf einmal etwas breiter als bei allen anderen.
  3. Unflexibel: Wenn man das Layout nochmal ändern muss, muss man es bei jedem Schüler einzelnd anpassen.

Die Serienbrieffunktion ist prinzipiell die Lösung. Der eigentliche Inhalt wird irgendwo anders eingegeben, und das Layout wird einmal gemacht und enthält Platzhalter/Feldbefehle.
Die Serienbrieffunktion erscheint mir aber zu spezialisiert auf Briefe zu sein. Man kann nur Anrede, Addresse etc. anpassen.

Das Problem kann ja kein neues sein. Kenne ich einfach nur nicht die Funktionalität, mit der man das machen würde?

1 Like

Du kannst im Serienbrief doch auch andere Texte einbringen und personalisiert veröffentlichen.
Möglichkeiten gibt es in einer Datenbank; ich persönlich würde dazu zuerst in einer Calc-Datei schreiben und über diese eine Datenquelle generieren, die dann für ein Serienbriefdokument verwendet wird.

In einer Zelle (Calc) können relativ viele Zeichen untergebracht werden (aus: Faq/Calc/022 - The Document Foundation Wiki):

die maximale Anzahl von Zeichen in einer Zelle ist 32767 (muss aktualisiert werden - wahrscheinlich ist 2^31 die programmatische Grenze; getestet, um 70 Millionen Zeichen zu akzeptieren, obwohl es außergewöhnlich schleppend funktioniert)

1 Like

IMHO läßt deine Beschreibung keine ganz einfache Lösung zu.
Im ersten Ansatz würde ich versuchen die Aufgabenstellung besser zu analysieren.
So gibt es Daten, die zumindest über einen längeren Zeitraum unverändert bleiben.
Beispiel: Vorname, Name, Klasse.
Dann Daten, die sich bei jeder Klassenarbeit ändern,
Aufgaben, Punktzahl, Gesamtpunktzahl, Note, Bewertungstext.
Eine weitere Frage die auftaucht, sind die Daten je Klassenarbeit zur einmaligen Verwendung oder müssen sie archiviert werden.
Muss eine Plausibilitätskontrolle, z.B. der Vergleich Gesamtpunktzahl zu Note, vorhanden sein.
Alle diese Überlegungen spielen eine wichtige Rolle für einen angepassten Workflow und die Verwendung einer Datenquelle (Tabelle oder Datenbank).
Es stellen sich also auch folgende Fragen:
Müssen alle Daten in einer Tabelle oder Datenbank vorhanden sein?
Macht es Sinn einen Teil der Daten manuell auf das Papier einzutragen?
Wenn z.B. alle Daten eingetragen werden müssen/sollen ist eine Datenbank zwingend erforderlich und
um Verwechslungen bei der Eingabe zu vermeiden, sind Eingabeformulare zu verwenden.
Wie wird das Layout für den Druck am besten aufgebaut (IMHO sind Tabellen in Writer, wie du selber erfahren hast auch fehleranfällig)?


Noch ein Hinweis:
Falls nicht schon bekannt, schau mal auf Mastodon, wo sich Lehrer aus dem deutschsprachigen Raum austauschen und gerade solche Themen, wie von dir hier beschrieben, behandeln.

@mcdog : Vermutlich kennst Du die Serienbriffunktion nur über Assistenten. Erstelle eine Datenbank und lass die direkt beim System anmelden - das wird beim Erstellen geregelt. Erstelle darin eine Tabelle. Auf diese Tabelle kannst Du mit dem Datenbankbrowser des Writer (Ansicht → Datenquellen) zugreifen. Felder kannst Du direkt aus der Datenbank in ein Writer-Dokument ziehen.

Notfalls einmal die Dokumentation zu Serienbriefen oder auch einfach das Base-Handbuch (für Datenbanken) herunter laden. Da steht das alles drin.

Ich habe mal eine beliebige Personenliste mit Vorname, Nachname, Geburtsdatum, Gender und Ausscheidedatum in eine Datenbank kopiert. Diese Personen representieren Schüler. Ignoriere einfach das zufällige Geburtsdatum aus 9 Jahrzehnten.
Dann habe ich eine Liste von Klassen erstellt mit Schuljahr und Klassenname und eine Spalte “EX”, mit der man ggf. Klassen ausblenden kann.
Das Formular “Klassen → Schüler” erlaubt es, Schüler den Klassen zuzuweisen, Klassen zu bearbeiten und neue Klassen zu erstellen. Doppelte Zuweisungen sind nicht möglich.
Das Formular “Schüler → Klassen” erlaubt es, Klassen den Schülern zuzuweisen, Schüler zu bearbeiten und neue Schüler zu erstellen. Doppelte Zuweisungen sind nicht möglich.
Dann gibt es noch einen Bericht, der einfach nur ausgibt, welche Schüler in welchen Klassen sind.

Abfragen, die mit “LB_” anfangen sind für Listenfelder gedacht. Abfrage “LB_P_CURRENT” zeigt alle Schüler ohne Ausscheidedatum oder mit Ausscheidedatum später als heute. LB_C_CURRENT zeigt alle Klassen, die nicht mittels Spalte “EX” ausgeblendet sind.

Abfragen und Tabellen benutzen Abkürzungen als Tabellennamen, was die Arbeit an der Datenbankstruktur sehr viel einfacher macht. In Formularen und Berichten sind die Bezeichnungen beliebig und auf Deutsch. Der angenommene Benutzer einer Datenbank sollte nur mit Formularen und Berichten konfrontiert werden, mit Abfragen nur bedingt, etwa bei Serienbriefen, und auch in Abfragen kann man sprechende Bezeichner wählen.
Der eine Bericht in der Datenbank deutet an, dass Datenbankberichte alternativ zu Serienbriefen verwendet werden können. Man könnte sogar Calc-Tabellen als Berichts-Medium verwenden.

Nun bestehen die Schüler nur aus Basis-Attributen, und Klassen bestehen aus einem Schuljahr und einem Bezeicher. Wir haben festgelegt, wer zu welcher Klasse gehört. Klassenarbeiten sind überhaupt noch nicht erfasst. Was macht eine Klassenarbeit genau aus? Wird sie immer nur mit einer bestimmten Klasse durchgeführt? Wenn ja, dann bestünde eine Klassenarbeit aus einer Klassen-ID (Bezug auf existierende Klasse), einem Ausführungsdatum, einem beschreibenden Text.
Dann benötigt man noch eine Ergebnistabelle. Jedes Ergebnis braucht eine Arbeits-ID (Bezug auf durchgeführte Arbeit), eine Schüler-ID (Bezug auf existierenden Schüler), irgendeinen Punktwert oder ähnliches und dann eben noch einen beschreibenden Text.

Hier ist also mein kleiner Projektentwurf mit Schülern (Tabelle P) und Klassen (Tabelle C)

  • EDIT: und mit Tests (Tabelle T) und Ergebnissen (Tabelle R).
    Klassenarbeiten.odb (64.5 KB) (2. Version)
    Es ist ein wenig zusammengestoppelt, aber so halbwegs zu bedienen.
    Das Formular “Testreport” dient einzig dazu, einen Test auszuwählen, der dann im gleichnamigen Report erscheint. Abfrage “Test_Report” könnte auch in einem Serienbrief oder in Calc verwendet werden. In Calc werden lange Texte am besten mit autom. Zeilenumbruch angezeigt.
2 Likes

Guten Morgen. Das ist eigentlich recht einfach, denn dazu braucht es eine Datenbank, die mit Base erstellt werden kann, und die als Datenbank in die Serienbrieffunktion eingebunden wird. Jeder Schüler ist ein Datensatz, der dann jeweils in den Serientext eingesetzt wird.
Falls es Fragen gibt, wie die einzelnen Schritte gehen, gerne fragen.