Serienbriefe für Geburtstage unter Openoffice / Libreoffice mit Daten von Mewis NT 2 und SQL

Mewis NT ist eine Integrationsplattform für das kirchliche Meldewesen der Firma KIGST GmbH. Die komplette Datenhaltung und Verarbeitung aller Module von Mewis NT finden in einer modernen SQL – Datenbank statt. Die Installation ist rein webbasiert und damit plattformunabhängig in der Bedienung. Mewis NT bildet kommunal gelieferte Daten ab, überträgt sie auf kirchliche Strukturen und bietet die Möglichkeit, die für das kirchliche Leben erforderlichen Informationen aktuell zu erfassen und auszuwerten.

Was Word nicht kann …

Auch, wenn die Evangelisch-Lutherische Kirche Bayerns MS Word 2010 als “die” Textverarbeitung forciert, manches geht mit Opensource auch gut (bis besser).

Mewis NT
(c) Mewis NT KIGST GmBH
Bei Mewis NT kann man die aktuellen Gemeindedaten als CSV-Datei exportieren (<Suche>, kein Kriterium eingeben, <Suchen>, <Drucken>, <Ausgabe>, dort “Export lang”, auf den <Stichtag> aufpassen, soweit ich sehe, wird der für die Altersberechnung gebraucht. Wenn ich für das laufende Jahr die Geburtstage will: 31.12.xxxx).

Diese CSV-Datei kann man gut für Serienbriefe verwenden.

Bei Word 2010 kann man über <Sendungen/Seriendruck starten> mit einem Assistenten sich seinen Serienbrief einrichten. Eine CSV-Datei kann eingelesen und gefiltert und sortiert werden. Mehr habe ich noch nicht entdeckt an Möglichkeiten.

Wer sich mit SQL-Abfragen ein wenig auskennt, wird da manche Möglichkeit vermissen. Hier kommt OO/LO ins Spiel. Hier wird ein anderer Ansatz verfolgt. Serienbriefe werden über Datenbanken mit ihren Datentabellen erstellt und es gibt sehr gezielte Auswertungsmöglichkeiten.

CSV-Daten in einer Datenbank ablegen

1 Problem bzw. 1. Hürde dabei: wie wird aus so einer CSV-Datei eine Datenbank (zum Problem des Zeichensatzes: Hürde 4, ganz am Ende)?

Zuerst macht es Sinn, ein Verzeichnis anzulegen, in dem solche Daten erfasst sind, z..B. das Verzeichnis “Gemeindedaten”. Dahinein wird die CSV-Datei kopiert. Ein fester Dateiname “gemeinde.csv” ist hilfreich. Denn wenn es neue Gemeindedaten gibt, werden die unter dem gleichen Dateinamen später einfach reinkopiert (überschrieben), schon ist alles wieder aktuell!

Nun gilt es, in OO/LO eine Datenbank anzulegen. <Datei/Neu/Datenbank>. Dann: <Verbindung zu einer bestehenden Datenbank herstellen> (der unterste Auswahlpunkt). Der verwendete Datentyp muß von “JDBC” auf “Text” ungestellt werden. Dann <Weiter>.

Pfad zu den Textdateien angeben. Wenn man das Verzeichnis im Explorer offen hat, kann man von der oberen Leiste den Dateipfad kopieren und einfügen. Es geht um den Pfad, nicht den Dateinamen! “Dateityp” ist “Comma separarated value”, <Feldtrenner” ist “;” (Semikolon), <Texttrenner> ist “keiner”. Wenn man hier einen Fehler macht – das kann man später noch korrigieren, über die Einstellungen der Datenbank. Dann <weiter>. Die Datenbank soll “angemeldet” werden, und gleich “geöffnet”.

Foto by: Robert, flickr.com, Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung 2.0 Generic Lizenz.

Bei <Fertigstellen> wird man nach dem Namen der Datenbank gefragt und dem Speicherort. Ist Geschmackssache, ich speichere sowas immer mit in dem Verzeichnis, in dem die Daten selbst stehen. Bei Bedarf wird ein Link auf den Desktop o.ä. gelegt. <Speichern> nicht vergessen.

Jetzt öffnet sich ein Fenster, es sollte die “Tabelle” angezeigt werden (bei einem Rechtsklick auf den Dateinamen können die Einstellungen verändert werden, wenn z.B. der falsche Trenner eingestellt ist. Nach einem Doppelklick sollte die Tabelle in voller Schönheit sichtbar werden.

Datenabfrage erstellen

2. Hürde: Im nächsten Schritt gilt es, eine Auswertung hinzubekommen.

Das geht unter <Abfragen>. Das Rumspielen mit dem Assistenten etc. überlasse ich jedem selbst. Jetzt wird <Abfrage in SQL-Ansicht erstellen> interessant. SQL ist eine Datenbankabfragesprache, mit der man richtig wilde Sachen machen kann (liebes Programm, ich hätte gerne eine einzige Liste, auf der monatsweise alle Geburtstage, Mitarbeitergeburtstage, Taufjubiläen, Ehejubiläen (25, 50, …) mit Namen auch der nicht-evangelischen Ehepartner, auch die Konfirmandengeburtstage drauf sind. Auf 1 Liste wohlgemerkt und nicht auf mehreren!).

So wild wird es nicht. Ich will mal nur die Geburtstage, die Post bekommen sollen: 65, 81-84. Also kommt in die Zeile rein:

SELECT * FROM "Gemeinde" AS "Gemeinde" WHERE "Konfession" = 'EV' AND "GEBURTSMONAT" = '01' AND ( "ALTERSANGABE" = '65' OR "ALTERSANGABE" ='81' OR "ALTERSANGABE" = '82' OR "ALTERSANGABE" = '83' OR "ALTERSANGABE" = '84' ).

Man könnte Nebenwohnsitze nach ausblenden (and not(“Wohnungsstatus” = “N/W) – Klammer nicht vergessen…)… Unter <Datei/Speichern unter> diese Abfrage ablegen. Doppelklick auf diese Abfrage, dann kommen die entsprechenden Gemeindeglieder.

Ggf. sinnvoll (“Konfession” = ‘EV’ or “Konfession” = ‘LT’) – Klammern nicht vergessen, bzw. was man halt so braucht.

Der Geburtsmonat ’01’ (oder einfach nur “1” für Januar, ausprobieren) muß entsprechend angepaßt werden. Und die Altersangabe u.U. auch. (Wenn die Abfrage gespeichert ist: markieren, rechte Maustaste, <in SQL-Ansicht bearbeiten…> und ändern, <F5> löst die Abfrage aus, zum Testen… Und wer noch ein wenig mehr herumprobieren will: die SQL-Engine hat ihre Grenzen, die ganz wilden Sachen überfordern sie. Die einseitige Darstellung von oben geht damit nicht.

Serienbrief mit Auswertung einstellen

Jetzt geht es zum Serienbrief. Hürde 3.

Unter OO/LO muß erst einmal die entsprechende Datenbank eingestellt werden (darum die Anmeldung):
<Bearbeiten/Datenbank austauschen>. Dann den DatenBANKnamen (nicht den Tabellennamen!) anklicken. Geburtstagsbrief schreiben, und die Seriendruckfelder über <Einfügen/Feldbefehl/andere/Datenbank> den Feldtyp “Seriendruckfeld” auswählen, rechts bei der <Datenbank> auf den DatenBANKnamen klicken.

Wenn man mehrere (Daten)tabellen im csv-Format hat, werden die alle angezeigt und stehen zur Verfügung. Auf das “+” vor dem (Daten)TABELLENnamen klicken, jetzt werden die einen Datenfelder angezeigt, die eingefügt werden können. Feld markieren, dann <einfügen>, schon ist es im Serienbrief.

Brief fertig machen, speichern, wenn man ausdruckt, wird man gefragt, ob man den Serienbrief drucken will. <Ja>. Dann geht das Seriendruckfenster auf. Ggf. muß man unter dem DatenBANKnamen noch zu <Abfragen> gehen und die gespeicherte Abfrage anklicken. Rechts kommen dann die Daten, die gedruckt werden. Die Ausgabe auf <Drucker> oder <Datei> sollte dann kein Problem mehr sein.

Foto by: eveosblog.de,flickr.com, Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung 2.0 Generic Lizenz.

Klingt ein wenig umständlich, manches ist bei MS Word einfacher. Aber die Möglichkeit der Auswertung erachte ich als großen Vorteil.
Geburtstagsbriefe (mit fertiger Vorlage und ab dem Moment, wo die CSV-Datei aus Mewis runtergeladen ist, um akutell zu sein, mit Monatsanpassung ist der SQL-Datei: Abfrage in der Datenbank markieren, rechte Maustaste, <in SQL-Ansicht bearbeiten>, Monatsnummer entsprechend eingeben) brauchen bei mir so 5-10’/Monat bis zum Druckvorgang. Und wenn man das Speichern vergessen hat, das System fragt nach.

Eventuell auftretende Zeichensatz-Probleme beheben

Bleibt eine letzte 4. Hürde und mögliches Problem nach der Umstellung auf die neue Mewis.
Der Zeichensatz wurde auf Unicode umgestellt. Viele Programme verarbeiten des inzwischen, ohne dass man davon was merkt. Die SQL-Engine von OO/LO nicht unbedingt. WENN die SQL-Abfrage nicht mag, folgendes versuchen:

1.) die Mewis-CSV-Datei mit OO/LO öffnen (Markieren, rechte Maustaste, öffnen mit…). Wichtig ist, die TEXTVERARBEITUNG zu nehmen, nicht die Tabellenkalulation

2.) Diese Datei nun mit <Speichern unter> im *.odt-Format speichern.

3.) Diese Datei nun mit <Speichern unter> als *.txt zu speichern. Wenn man einen anderen Dateinamen nimmt: die Dateigröße hat sich in etwa halbiert.

4.) Als entsprechende CSV-Datei gespeichert oder umbenannt im entsprechenden Verzeichnis sollte nun “flutschen”.

Gastautor: Peter Peischl
Titelbild: “Old Blue Mailbox” Thomas Kamann, flickr.com, Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung 2.0 Generic Lizenz.

Gastautor

Dies ist ein Beitrag eines unserer Gastautoren. LUKi freut sich stets über neue Beiträge aus dem Linux- und Opensource-Umfeld! Wenn Du ein spannendes Thema hast und dieses gerne auf luki.org veröffentlichen möchtest, kontaktiere uns bitte!

More Posts

2 Kommentare zu “Serienbriefe für Geburtstage unter Openoffice / Libreoffice mit Daten von Mewis NT 2 und SQL

  1. Schön, dass dies klappt, allerdings finde ich nach wie vor, dass Kirchens die Finger von kommunalen Daten lassen sollte, aber dies ist eine andere Geschichte.

  2. Danke für den Hinweis, dass man schlicht einen Ordner definieren muss, um die CSV Dateien einzubinden. Das war die passende Lösung.

    Um das Charset-Problem zu lösen habe ich jetzt ein kleines Script geschrieben, dass den Job übernimmt, die CSV Dateien von MEWIS in das richtige Format zu bringen. Entweder als Background-Job oder mit dem Tool-Filemanager-Action auf Knopfdruck.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert