Clanintern Clanintern Clanintern

Forum

Öffentliche Foren
FORUM: Spiele & Computer THEMA: Word-Dokument generieren
AUTOR BEITRAG
godfake

RANG Deckschrubber

#1 - 04.07 18:04

Hey zusammen,

ich bin Vermögensberater und brauch für meine Arbeit ein kleines Programm. Da ich leider nur PHP, MySQL usw. bewandert bin, hilft mir das offline relativ wenig.
Ich brauche ein kleines Programm, welches nach dem Öffnen in einer Art Fragebogen mich abfragt, was für einen Brief ich schreiben möchte. Also auf deutsch ich will auswöhlen können zwischen Geburstagsgruß, Hochzeitsgruß, Terminbestätigung usw. (im Programm soll dann ein von mir standardmäßig vorgefertiger Text hinterlegt sein, der bei Auswahl des jeweiligen Themas eingefügt wird in das Word Dokument) dann möchte ich in einer weiteren Frage, den Empfänger auswählen können (am besten durch einen Import der Kontaktdaten aus Outlook). usw...


Wenn man dann den Fragebogen ausgefüllt hat, soll das Programm nach Klick auf einen Button, Word öffnen und meinen gewünschten Brief generieren, sodass ich tatsächlich nur noch auf drucken klicken muss.

MEINE FRAGE:
1. Mit welcher Programmsprache lässt sich soetwas realisieren??
2. Wo bekomme ich evtl schon ähnliche kleine Anleitungen zu diesem Thema??
3. Welche Programme benötige ich um mein Programm schreiben zu können??

Vielen Dank

MFG

godfake
horst

RANG Prophet of Clanintern

#2 - 04.07 18:19

Gegenfrage: Wieso benutzt du nicht die Template- & Serienbrief-Funktion von Word?
godfake

RANG Deckschrubber

#3 - 04.07 18:50

erstmal danke für die schnelle reaktion und blöde frage....
ich bin seit 5 jahren hier nicht mehr angemeldet, aber ich weiß dass mir jemand vor vielen Jahren in diesem Forum PHP beigebracht hat und der hieß HorstHorstMann oder so ähnlich... sag jetzt nicht, dass du das bist?? ;)

Wegen den Briefen.. also ich kann mir noch nicht ganz vorstellen, wie ich mit diesen Serienbrieffunktionen einen ganzen Brief vollautomatisch erstellen lassen kann. Weil ich möchte keine hundert Dokumente haben, wie im moment. (ein Geburstagsbrief, ein Hochzeitsgrußbrief, ein Gruß zur Taufe, Glückwünsche zur Hochzeit, einen Erstbrief für Neukunden usw.... und jeden Brief muss ich dann noch in Du-Form, Sie-Form, Familie-Form entwickeln., sodass ich am ende wirklcih 57 Doumente habe.) So habe ich es nämlich im moment. Ich muss tausend Wordbriefe öffnen und immer ein paar Sachen abändern und drucken und wieder schließen und wenn ich mal versehentlich ne änderung mache udn es speichere, dann hat der den fehler sofort drinne und das nächste mal wenn ich die datei öffne ärgere ich mich wieder.

Also ich würde gerne ein Programm haben (wenn ich das in Word selbst realisieren kann umso besser ;), bei dem ich wirklich einfach nur angeben muss:

wer? -> Auswahl aus Namensliste
was? -> Auswahl des Anliegens
anrede? -> Sie / Du
ja usw.

und wenn ich auf generieren klicke, soll er automatisch einen Standardbrief (dessen Text ich ihm natürlich vorher gegeben habe - passend zur anrede) öffnen, die Adresse einfügen, aktuelles Datum dazuschreiben und das wars auch schon.

Wenn ich das Ganze online machen dürfte wäre das alles kein Problem, dann würd ich nen schönen <form>- tag machen mit dropdownmenüs usw.... aber da ich das offline brauche und auch kollegen installieren will denen ich nicht auch noch apache erklären möchte ist die offline word-variante deutlich wichtiger für mich... :)
danke vorab
horst

RANG Prophet of Clanintern

#4 - 04.07 19:16

Gut möglich. Im Übrigen finde ich die Frage nicht blöd.

Die Problematik, dass du pro Ereignis eine eigene Vorlage brauchen wirst, hast du unabhängig von der Technologie. Ich denke nicht, dass es trivial ist abhängig von Check-Boxen (Trauerfall oder Geburtstag, Du oder Sie) einen kompletten Textblock GENERIEREN zu lassen. Die musst du wohl oder übel schreiben. Denn ob es z.B. "du weißt was gemeint ist" oder "sie wissen was gemeint ist" heißt, wird das Modul wohl kaum unterscheiden können sollen, oder?

Das gleiche gilt für den Fehler über den du dich ärgern könntest. Wenn der in deine Datenbasis von deiner Implementierung kommt, dann ärgerst du dich genauso... WO ist da also der Unterschied?

Und damit sind wir auch schon am Ende deiner Argumente, die gegen meine ach so blöde Frage sprechen.

Schon mal dran gedacht nachzulesen was eine VORLAGE und was ein SERIENBRIEF überhaupt sind? Schließlich kann man einen Serienbrief auch an nur eine Person schicken und die entsprechenden Felder aus den Kontaktdaten automatisch übernehmen lassen.

Mein Word kann jedenfalls das Outlook Adressbuch auslesen und die richtigen Daten in Adresse und "Platzhalter" einfügen. Ich wollte dir ja nur helfen Zeit und Nerven zu sparen. Aber ich werde dich sicher nicht weiter mit "blöden Fragen" belästigen.
godfake

RANG Deckschrubber

#5 - 04.07 19:36

wer hat denn gesagt, dass deine frage blöd war?? ich habe damit nur gemeint dass ich mal eine blöde frage stellen will, weil ich ja absolut von der materie mit word usw. keine ahnung habe. also sorry für das missverständnis.

ich meinte sicherlich nicht deine frage. die ist zweifelsohne nicht blöd, ich hab ja auch schon probiert es mit word zu realisieren, habs aber nicht wirklich hinbekommen und wollte eigentlich nur eine lösung haben, um in zukunft zu umgehen, dass ich 55 dateien habe. Dachte man könnte die verschiedenen Textpassagen ( wie dein schönes beispiel "du weißt was gemeint ist", "sie wissen was gemeint ist") in eine Art variable speichern und die dann in mein dokument einfügen. je nachdem was ich am anfang ausgewählt habe.
horst

RANG Prophet of Clanintern

#6 - 04.07 19:58

Achsooooooooooooo! Ich saß schon in der Ecke und habe geschmollt :-) Echt ein doofes Missverständnis.

Ich dachte halt Outlook Daten Importer + Serienbrief Funktion wäre ausreichend, weil es nur _den einen_ "Du-Geburtstag" und _den einen_ "Sie-Geburtstag" gibt.

Um zu deinen Ausgangsfragen zurück zu kommen, falls der Serienbrief nicht reicht: Du kannst Visual Studio.net benutzen und dir ein Add-In schreiben. Wenn ich mich nicht irre, gibt es in der IDE sogar den Projekttypen "Office Add-In". Allerdings musst du dich dann etwas einlesen. MSDN ist zwar sau groß und komplex, aber wenn man sich 1x damit abgefunden hat, findet man lauter wertvolle Hinweise. Als ich damit gearbeitet habe, war der Zugriff auf Office Objekte super einfach. (Ich hatte ein Visio Add-In gebaut)

Wird bei einem Word-Dokument sicher nicht großartig anders sein.

Glaub das gleiche geht auch direkt mit einem Makro.
godfake

RANG Deckschrubber

#7 - 04.07 21:06

ja genau also sorry nochmal für das missverständnis und danke für die hinweise...
mir ist bewusst, dass mein vorhaben wahrscheinlich unter der seriendruck funktion einfacher zu lösen wäre, jedoch bin ich wirklcih an einer richtig guten programmentwicklung interessiert und da kommen mir deine tipps mit visual studio.net und msdn genau richtig. Bin gerne bereit mich da in das ein oder andere Thema auch einige Wochen lang einzulesen. Es geht dabei nämlich wirklcih um ein Programm, was ich die nächsten 30 Jahre mehr oder weniger leicht verändert benutzen möchte. Zudem habe ich 32.000 Kollegen, die sich mit Sicherheit nicht dagegen wehren, wenn ich mit nem Email Rundschreiben, mal ein wirklich gelungenes Programm an sie weitergebe.
Will mir da also auf jeden Fall schon ein paar Stunden, Wochen und wenn es sein muss auch Monate Zeit nehmen.
Ich werd jetzt mal mit deinen Tipps und den damit gewonnenen Suchbegriffen google ein bisschen unsicher machen und schauen, was ich damit alles bewegen kann.
Vielen dank nochmal... und wenn ich vielleicht noch ne konkrete Frage hab, meld ich mich wieder :)

Schönen Abend noch.

Gruß Ben
Morath

RANG Deckschrubber

#8 - 06.07 08:50

Also wenn ich mich mal zwei Tage zu spät noch einmischen darf... :-)

Wenn ich mir folgenden Absatz durchlese:

"Ich muss tausend Wordbriefe öffnen und immer ein paar Sachen abändern und drucken und wieder schließen und wenn ich mal versehentlich ne änderung mache udn es speichere, dann hat der den fehler sofort drinne und das nächste mal wenn ich die datei öffne ärgere ich mich wieder"

Dann habe ich die Vermutung, dass du gar nicht mit Dokumentvorlagen arbeitest, kann das sein? Was horst ursprünglich gemeint hat war, dass du für ein bestimmtes Thema, z.B. "Geburtstagsgruß_Du_Form", ein Dokument schreibst, in dem der gesamte konstante Text drinsteht, nur die direkte Anrede (Namen) lässt du weg.

Das Ganze dann als Dokument_vorlage_ gespeichert, kannst du immer wiederverwenden, indem du es über den Menüpunkt Datei->Neu (vorsicht, in den mit bekannten Wordversionen macht der Button in der Toolbar was anderes, ich mein hier wirklich den Menüpunkt!) auswählst. Damit erhältst du dann ein neues Dokument, das eine Kopie der Vorlage darstellt. Wenn du hier was einträgst, abänderst und versehentlich speicherst, dann bleibt die Vorlage davon unangetastet.

Mir ist klar, dass das die Anforderung "weniger Dokumente" nicht erfüllt, aber ich hab eben die Vermutung, dass du eher einen Platz suchst, an dem du die Vorlagen übersichtlich und überschreibsicher ablegen kannst.

Mit der Serienbrieffunktion kenn ich mich leider nicht gut genug aus, genauswenig mit den Makros, ich kenne aber von unseren Vorlagen hier in der Firma, dass es möglich ist, einige Formularfelder beim Erstellen eines Dokuments aus einer Vorlage abzufragen. So gibt es hier z.B. für interne Dokumente einen Dialog, der Name und Telefonnummer des Erstellers abfrägt und die dann automatisch in die Fusszeile des Dokuments einfügt.
-=friends=-[Intruder]

RANG Deckschrubber

#9 - 08.07 13:58

Hallo,

da du bereit bist mehr Zeit zu investieren lohnt sich wirklich die Einarbeitung in VBA.

Hier mal eine Kurzanleitung in Pseudocode wie man das in VBA für Word umsetzen könnte.
1. Du definierst Dir im VBA-Editor von Word ein Userform, welches Deine Abfragen enthält, z.B. Radio-Button für Anrede Du/Sie und Pulldownbox für Trauerfall, Geburtstag, usw. ( Wordhilfe: Erstellen Userform )

2. In Abhängigkeit der Auswahl des Userform kannst du dann Textblöcke in Word einfügen. In einer einfachen Variante könnten diese Textblöcke über
If pulldown_value = "Trauerfall"
Selection.TypeText Text:="Tut uns leid zu hören, dass...."
Selection.TypeParagraph
ElsIf pulldown_value = "Geburtstag"
Selection.TypeText Text:="Herzlichen Glückwunsch...."
Selection.TypeParagraph
EndIf
eingefügt werden.(Es wird dann ins aktuelle - meist leere Dokument - 'getippt'.)

Für das du/sie brauchst du dann ebenfalls innerhalb der IF-Blöcke weitere Unterscheidung an den Stellen, wo sie benötigt werden.
Auf diese Weise würdest du also wirklich den Textfluß programmieren.
Der Nachteil bei dieser Kurzvariante ist, dass du Änderungen am Basis-Text im Makro pflegen müßtest.

Die hübsche Variante würde in der Tat Vorlagen nutzen, nämlich für die unterschiedlichen Briefarten, z.B. Trauerfall mit schwarzem Rahmen, oder Geburtstag mit Sektkorken als Rand und an den Du/sie Stellen Paltzhalter definieren, die dann durch den Scriptcode entsprechend gesetzt würden.
Oder du hast wirklich für alle Kombinationen Vorlagen, wie Horst schrieb.

Das klingt jetzt vielleicht alles einfach, aber allein beim Userform Erstellen und Auswertung der Elemente wirst du Zeit brauchen.

Viel Spaß beim Programmieren

Intruder
Mumie

RANG Deckschrubber

#10 - 12.11 15:37

falls du es noch nicht hast und
falls du die ganze datei trotzdem generieren lassen willst, dann mache mit word eine rtf datei. Bei der ist der quelltext nicht komprimiert und ist einfach textstellen zu ändern.
mit openoffice konnte ich auch fusszeilen etc einfügen, welches vom wordpad zwar nicht unterstützt wird. Das ist aber egal, da du es in word korrekt öffnen kannst.
wenn du willst kannst du auch lokal php und mysql nutzen und so das ganze relativ einfach realisieren (ob das sinnvoll ist, ist eine andere frage...)
thies

RANG Deckschrubber

#11 - 13.11 08:17

Auch wenn die bisher genannten Ansaätze schon sehr brauchbar sind, würde ich nochmal LaTex in den Raum werfen.

Auch damit ist es möglich Dokumente zu erstellen. Wo man den Inhalt der Dokumente herzieht ist ebenfalls variabel. Und man ist nicht unbedingt auf Word angewiesen.