| |
|
|
CB | Hallo,
noch eine Frage an die Spezialisten: Gibt es eine Möglichkeit, Winword aus einem Profan-Programm heraus mit Übergabe eines Parameters zu starten?
Folgender Ablauf: Mein Programm sammelt eine Menge Daten über einen Patienten und legt diese in einer INI-Datei ab, die mit einer Nummer (vom Ordinationsprogramm vorgegeben) benannt wird. Die Datei heißt also zB 1234.ini. Das wäre auch gleichzeitig der einzige Parameter, den ich Word - und damit einem AutoNew-Makro übergeben möchte. Dieser liest dann die INI aus und setzt automatisch die ausgelesenen Werte in die entsprechenden Felder ein. Geht das überhaupt in dieser Form oder muß ich da einen Umweg wählen? Word kann ich mittels Switches dazu veranlassen, ein neues Dokument auf Basis einer bestimmten Vorlage zu öffnen (/tVORLAGE.DOT) und einen bestimmten Makro auszuführen (/mMAKRONAME), bloß über zusätzliche Startparameter konnte ich weder in den diversen Word-Hilfen noch im Internet was Brauchbares finden.
Christian |
|
|
| |
|
|
|
Jörg Sellmeyer | Hallo Christian, Ob das, was Du mit dem Makro erreichen willst geht, weiß ich nicht. Word mit einer Datei als Startparameter aufzurufen ist jedoch ganz einfach: Shell LW:\Pfad\Winword.exe D:\Meine\Datei.ini Und das wars auch schon. Gruß örg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 18.12.2004 ▲ |
|
|
|
|
CB | Hallo Jörg,
habe mir die letzten 2 Tage die Finger wundgeschrieben, eine Testumgebung, die für alle nutzbar ist, erstellt, um mein Problem anschaulicher darstellen zu können. Mit Shell ... + Datei gehts nämlich leider nicht, da wird bloß das Dokument zur Bearbeitung geladen, ich möchte aber die in der INI-Datei enthaltenen Einträge einem AutoNew-Makro innerhalb der Vorlage zur Verfügung stellen. Dem Makro würde nur die Angabe der Datei genügen, in meinem Beispiel 1234. Als Anhang habe ich folgende Dateien mitgeschickt:
WW_starten.prf (am Ende der Datei bin ich näher auf die Problematik eingegangen) Patient.dot (Vorlage auf Basis von Word 95) Patient97.dot (dasselbe auf Basis von Word 97 aufwärts) 1234.txt (mein Musterpatient) - einfach nach 1234.ini umbenennen (im Forum VERBOTENE EXTENSION!?, INI geht jedenfalls nicht upzuloaden)
Je nach verwendeter Word-Version eine der beiden Vorlagen ins Benutzer-Vorlagen-Verzeichnis zusammen mit der 1234.ini hineinkopieren. WW_starten.prf eruiert aus der Registry die korrekte Word-Version, schlägt dann das korrekte Verzeichnis vor und startet (bei mir jedenfalls) Winword unter Verwendung der Vorlage - bis dorthin klappt alles.... Sch...Mircoschrott
Gruß, Christian |
|
|
| |
|
|
|
Frank Abbing | Hallo Christian,
ich kann zu deinem Problem momentan leider nichts sagen.
Aber poste hier bitte nicht mehrere benötigte Dateien untereinander, sondern packe alle in eine Zip-Datei und poste diese eine Datei hier. Macht die ganze Sache übersichtlicher und nicht so kompliziert für den, der dir helfen will.
Nix für ungut |
|
|
| |
|
|
|
Jörg Sellmeyer | Hallo, Ich habe jetzt Deine Dateien noch nicht angeschaut, aber könntest Du nicht das Profanprogramm die Daten auslesen lassen und als einen String mit unverwechselbaren Trennzeichen an das Makro übergeben? Da könnte dann alles drinstehen. 1234|Patient|Krankheit|u.s.w. Dein Wordmakro muß dann diesen String aufdröseln. Ansonsten könntest Du auch deine Daten in eine CSV-Datei speichern und die in Word mit entsprechenden Feldfunktionen automatisch auslesen.
Gruß Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 19.12.2004 ▲ |
|
|
|
|
CB | Hallo Jörg,
danke für Deine Anregungen, bloß: Bei diesem Projekt geht es darum, ein mehrseitiges Gutachten für einen gerichtlich beneideten Schwachverständigen zu erstellen. Scherz beiseite - ist ein ganz ernstes Thema. So ein Formular besteht aus mindetens 5 bis open end Seiten (20 bis 100 sind nicht ungewöhnlich bei komplizierteren Fällen) und hat mehrere Hundert Einträge, wobei auch jede Menge Felder leer bleiben. Das wäre in Form von Strings zu fehleranfällig und als csv - ich weiß nicht so recht, ab das ginge. Teilweise besteht ein Eitrag aus etlichen Hundert Zeichen, die ich wegen der 255-Zeichen-Begrenzung pro Variable auseinanderteilen und später wieder korrekt zusammensetzen muß! Außerdem hätte eine INI für mich noch einen Vorteil: Ich bekomme die Patientendaten (Name, Adresse, Geburtsdatum, etc) bereits in dieser Form und müßte die Ini bloß um weitere Einträge ergänzen. Noch eine Idee: (leider kenn ich mich dabei überhaupt nicht aus) Kann man denn nicht Daten aus einer Anwendung an eine andere über DDE o.ä. senden?
Liebe Grüße Christian |
|
|
| |
|
|
|
| Vielleicht könntest Du Dir das Clipboard zunutze machen,- vielleicht bietet WordMakro ja soetwas wie zwischenablage-Einfügen.
Salve, iF - der immernoch alles doppelt sieht wegen so einer schhhh Viruserkrankung. |
|
|
| |
|
|
|
CB | Hallo, iF
da brauchst Du weniger Salve, als vielmehr Salbe - nein, schlechter Scherz - Pfui! Ich weiß, sowas ist irrsinnig lästig und unangenehm. Wünsche Dir baldige Besserung! Täusche ich mich, oder taucht da auf einmal der David hinterm iF-Avatar auf?
Vielleicht ist Deine Idee mit dem Clipboard gar nicht so schlecht. Ich sehe aber folgendes Problem: Wie ich kürzlich geschildert habe, startet Word mit Parameter-Angabe nicht so, wie ich es brauchen würde. Um über das Clipboard eine Datenübergabe zu realisieren, müßte ich entweder
Word händisch starten - Datei Neu - Vorlage wählen - warten, bis das Fenster vom Autostart-Makro bereit ist zur Eingabe. Nur- dann könnte ich die paar Zahlen auch gleich selbst eintippen, das ist ja nicht Sinn meiner Überlegungen!
oder
mein Programm Word starten lassen, wobei aber immer die Original-Vorlage (.DOT) geöffnet wird (d.h. SOFORT nach Ziffernübergabe Word zu einem Datei speichern unter - *.DOC veranlassen, was mit einem Word-Makro ganz einfach zu automatisieren wäre) Ist wahrscheinlich der sinnvollere Weg! Bliebe nur noch folgendes zu lösen: Wie überprüfe ich, daß Word bereit ist zur Übergabe der Daten? Also daß nicht nur Word, sondern auch das Dialogfenster des Makros gestartet ist? Einfügen geht im Makro, aber wie schicke ich die Daten übers Clipboard - Sendkeys? Geht das alles auch, wenn Word minimiert gestartet wird - falls das aus Profan heraus überhaupt möglich ist? (und wenn ja, wie?)
Ich weiß, das sind ein Haufen Fragen und Du tust Dir mit den Augen sowieso schwer momentan, aber das ist ein Grundsatzproblem in meinem Projekt! Damit Du (und alle anderen, dies interessiert) Dir ein Bild davon machen kannst, was ich da so auf die Beine stelle, schicke ich ein paar Screenshots (gezippt - sonst krieg ich von Frank wieder eins aufs Auge) mit. Das Programm ist nicht mehr und nicht weniger als eine vollautomatische Erstellung eines Gerichtsgutachtens (hier für einen Lungenfacharzt) aus den Daten, die vom Ordinationsprogramm und der Lungenfunktionsprüfung kommen, ausgewertet und werden und daraus ein Kalkül vorgeschlagen wird. Für die Screenshots habe ich keinen einzigen Buchstaben geschrieben! Nicht ganz ohne Stolz: meines Wissens gibt es weltweit kein einziges ähnliches Programm! Für die Urversion (noch in WordBasic!) habe ich insgesamt rund 2000 Stunden investiert! Das waren knapp 80 Makros mit insgesamt ca 400 A4-Seiten... Jetzt bastle ich wieder - nach einem Jahr Pause - an der Übersetzung nach Profan.
Bei dieser Gelegenheit möchte ich mich auch ganz besonders bei Andreas Miethe, Sebastian König und etlichen anderen (inkl. denen, die jetzt gerade ihre Zeit für mich opfern) für ihre Hilfe bedanken - BITTE ALLE VOR DEN VORHANG!
Wenn Du Dich soweit erholt hast, daß Du Deine Augen nicht mehr überbeanspruchst, würde ich Dich außerdem sehr herzlich bitten, doch auch mal mein Problem mit der Messagetable in Augenschein zu nehmen. Das habe ich schon vor ein paar Tagen ins Forum gestellt, aber bis jetzt noch keine Resonanz dazu erhalten. Es haben sich schon etliche Leute den Beitrag angeschaut, ist aber wahrscheinlich doch ein Problem für Hardcore-Profs (Prof steht sowohl für Profan als auch für Profi)...
Liebe Grüße, Christian |
|
|
| |
|
|
|
| Stop Stop Stop ich habs was Du brauchst. Jetzt weiß ich endlich was Du willst - ich mache etwas ähnliches ständig - Da kenne ich einen Super-Trick!
Für Formulare - egal welche - nutze ich OpenOffice und speichere diese in *.SDC. Das ist wohl StarCalc oder so. Das Format ist super für Programmierer - die Texte sind Reintext - Du kannst dort Platzhalter setzen und diese austauschen.
Das Läuft so:
vorlage.sdc in den Speicher laden. Speicherbereiche mit translate austauschen. session.id dateiname generieren (meist datum+zeit+netID+tickcount(alias rnd)) speicher als session.id.sdc speichern und openoffice anweisen die datei zu drucken oder nur zum anzeigen zu öffnen. (shellexec)
Das Prinzip ist aus meiner erfahrung bewehrt - ich nutze es stetig. Der Vorteil ist - man kann komplexe Formulare entwickeln und diese automatisiert ausfüllen lassen. Mit Xprofan kann man somit auch lecker Drucken.
Habs grad mal hier gepostet.
Ich kann Dir wirklich nur ans Herz legen bei diesem großen Projekt das Drucken darüber zu realisieren - Du ersparst die 99% Arbeit und hast wunderbar anpassbare Formulare mit allem Drum und Dran. Und openOffice eignet sich super als Druckprozessor.
Salve, iF |
|
|
| |
|
|
|
CB | Hi, also auf den ersten Blick hört sich das mal voll genial an! OpenOffice hätte ich, nur mit den Automatisierungsfunktionen von OO bin ich absolut nicht vertraut (im Gegensatz zu Word-Makros...) Ich hätte kein Problem damit, mich näher mit OO auseinanderzusetzen, noch dazu, wo M$ Office-Dateien auch darauf laufen.
Allerdings müßte ich dann auf allen PCs des Pulmologen OpenOffice installieren und ich weiß nicht, ob der damit so eine Freude hat! Du mußt Dir folgendes vorstellen: In der Ordination werkelt ein Server auf NT und ein paar schon etwas in die Jahre gekommene PCs. Dazu kommen ein paar Notebooks für ihn und eine Kollegin, um zuhause weiterarbeiten zu können. Das Rohgutachten wird vor Ort erstellt, das Feintuning (evtl. Korrekturen und Ergänzungen) zu Hause. Auf den PCs läuft ein Ordinationsprogramm (Patientendatenerfassung etc.), das Programm für die Lungenfunktion (ein DOS-Programm!), mein Gutachten-Programm (dzt. noch die Word-Version) und noch ein paar kleinere Dinge parallel auf win 98, und das mit 192 MB RAM!! Das Ordinationsprogramm wurde vor 2 1/2 Jahren ausgetauscht. Die EDV-Firma hat vollmundig versprochen, daß eine Datenübernahme aus der alten Datenbank kein Problem wäre. Als es dann soweit war, sind die Leute kopfschüttelnd vor einem Datenbestand von rund 30.000 Patienten gesessen. Es hat 1 1/2 JAHRE gedauert, bis die Softwre halbwegs störungsfrei gelaufen ist! Du verstehst meine Bedenken?! Er wird sicher irgendwann mal die PC-Flotte austauschen, aber das ist in einer gut laufenden Ordination ein Irrsinnsaufwand - nicht nur finanzieller Natur - und solange die Dinger laufen... Aber ich freue mich, daß es einen möglichen Lösungsansatz gibt, auch wenn ich, wie gesagt, mit OO außer dem Import von Word-Dokumenten keinerlei Erfahrung habe. Meine Makros stellen nämlich auch noch ganz andere Sachen an, das könnte ich aber auch Profan erledigen lassen... Sag mal, wenn ich die Daten ins OO kriege und das Dokument nach dem Import als Word-DOC speichere...? Dann würde es genügen, auf 1 PC OO zu installieren und die beiden könnten das Gutachten, wie gewohnt, auf jedem beliebigem Word abschließen. Ich werd mal sehen, ob ich aus Deinem Code schlau werde und das zu Hause weiterbehirnen, fürs erste jedenfalls meinen verbindlichsten Dank!
Gruß, Christian |
|
|
| |
|
|
|
CB | Noch eine kurze Ergänzung: echte OO-Docs haben XML-Format - korrekt?
Christian |
|
|
| |
|
|
|
| Meinst Du sxws?
Nicht das ich wüsste - auf jeden fall sindse auch noch geHuffmant.
Ich empfehle ´ja auch nicht die nutzung von echten oO-Docs, sondern von SDCs mittels oO. Denn diese haben Klartext.
Salve, iF |
|
|
| |
|
|