Thread Perl und DDE (28 answers)
Opened by bianca at 2011-10-16 19:31

hlubenow
 2011-10-18 21:10
#153315 #153315
User since
2009-02-22
875 Artikel
BenutzerIn
[default_avatar]
2011-10-18T09:24:29 bianca
2011-10-18T08:40:26 hlubenow
Also nochmal: Du willst eine zentrale Datenbank auf einem Linux-Server betreiben (SQL?), der Benutzer soll auf einem Windows-Rechner in MS Word eine Dokumentvorlage auswählen, mit einer Adressverwaltung (welcher?) auf die Serverdatenbank zugreifen und die Adressdaten dann direkt in sein Word-Dokument erhalten.

Nein, um Gottes Willen.
Der Benutzer hat eine Webanwendung im Browser vor Augen. Die Adressverwaltung ist im Backend ein Perlscript. Ob dahinter eine DB oder ein ASCII File steht soll mal egal sein.
Benutzer sagt, "Adresse von HLUBENOW verwenden mit der Vorlage Standard Firmenbrief"!
Die Vorlage ist als Datei auf dem Server abgelegt im Verzeichnis ~/vorlagen

Jetzt geht das Perlscript hin, öffnet diese Vorlagendatei, setzt dort die ausgewählte Adresse ein und schickt dann diese Vorlage als Attachment an den Clientbrowser. Dort wiederum ist die Extension lokal mit der Office-Anwendung verknüpft, sodass sich dann nach dem Klick auf "Ausführen" das lokale Office-Programm öffnet.
Das wars.

Ok, dann gibt es also diese Webanwendung im Browser sowieso schon, und das Anschreiben der Person ist eine Zusatzfunktion?!
Na gut, sonst bräuchte man den Browser nicht unbedingt.

Ich habe für mich übrigens sowas ähnliches (in Python) geschrieben, nur gibt es bei mir noch etwas andere Anforderungen. Ich beschreibe das mal, vielleicht ist es bei Dir am Ende ja doch ähnlich:
Bei mir geht es um eine (kleine) Anwaltskanzlei. Da gibt es eine Datenbanktabelle mit den Daten zu einem Mandanten, z.B. die Adressdaten.
Daneben gibt es eine Datenbanktabelle mit den Daten zu dem Mandat, z.B. das interne Aktenzeichen, das auch in das Anschreiben automatisch aufgenommen werden soll, außerdem die Bezeichnung des Mandats, z.B. "Müller ./. Schultze", das in die Betreffzeile eingefügt werden soll.
Nun ist es so, daß ein Mandant mehrere Mandate in Auftrag gegeben haben kann, daß aber andererseits auch in einem Mandat mehrere Personen Mandanten sein können. Datenbanktechnisch nennt man das eine "n:m"-Beziehung. Dafür braucht man eine Zwischentabelle, in der Mandatsnummer und Mandantennummer festgehalten werden, so daß die Beziehungen der Tabellen richtig zugeordnet werden können.
So, mein Skript fragt den Benutzer nun, ob er nach einem Mandat oder nach einem Mandanten suchen möchte. Will er z.B. nach einem Mandanten suchen, muß er im nächsten Schritt ein paar Anfangsbuchstaben des Nachnamens dieser Person eingeben. Daraufhin listet das Skript alle in Betracht kommenden Mandanten auf. Davon kann der Benutzer dann einen auswählen. Daraufhin listet das Skript alle Mandate auf, die für diesen Mandanten gespeichert sind. Der Benutzer wählt dann das gewünschte Mandat aus. Da nun bekannt ist, wer in welcher Angelegenheit angeschrieben werden soll, öffnet mein Skript MS Word und erstellt mit den Daten automatisch (über Python/win32com, entspricht Perl/Win32::OLE) ein Dokument. Dieses Dokument beruht immer auf derselben Dokumentvorlage, das heißt, der Briefkopf usw. ändert sich nicht. Der Benutzer kann das Dokument dann weiterbearbeiten und (ganz normal aus Word) drucken.
Bei mir gibt es also keine Browser-Anwendung und auch kein Intranet. Trotzdem läuft das so recht gut und vor allem schnell.
Es kann aber etwas anders sein als das, was Du möchtest, so daß ich nicht sicher bin, ob ich der Richtige bin, um Dir weiterzuhelfen.
Die Frage ist aber doch, ob Du wirklich nur Adressdaten in Dein Dokument eintragen willst oder nicht auch Daten des Auftrags (Auftragsnummer usw.). Dann wärst Du nämlich ungefähr doch bei meiner Situation.
Im allgemeinen sollte die Verknüpfung von Datenbank und Textverarbeitung natürlich etwas sein, das allein durch ein Office-Paket gelöst werden kann.
Ungefähr das, was ich mit meinem Skript mache, soll z.B.

http://www.canzeley.de/

allein über OpenOffice und das dortige StarBasic machen. So richtig hingekriegt habe ich es damit aber nicht. Dieses Basic ist leider sehr empfindlich, was die verwendete OpenOffice-Version angeht, so daß das Programm bei mir zahlreiche Fehlermeldungen ausgibt (und also nur teilweise läuft und dazu noch sehr langsam, was wohl am Basic liegt).

Ein pdf zu generieren könnte natürlich auch eine Möglichkeit sein. Bei komplexen Formatierungen und auch komplexen Briefköpfen kann man dafür auch LaTeX einsetzen, das über den Befehl "pdflatex" unmittelbar schöne pdfs generiert. Nur muß der Benutzer dafür seinen Text LaTeX-konform eingeben, was für die meisten zu schwierig sein dürfte. Was ist z.B. mit den Zeilenumbrüchen oder der Silbentrennung. Für ein einfaches Fax mag ein skript-generiertes pdf ja genügen, aber für einen Geschäftsbrief möchte ich jedenfalls schon die volle Funktionalität einer großen Textverarbeitung (oder eben von LaTeX) haben.

Gruß

View full thread Perl und DDE