| |
|
|
- Seite 1 - |
|
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 |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
CB | @iF
habe jetzt versehentlich bei den Codeschnipseln auf Deine BinPrint geantwortet - steht unter [...]
Christian |
|
|
| |
|
|
|
| Hallo Christian...
Ich war in der letzten Zeit etwas mit anderen Dingen beschäftigt und will mal hoffen, daß ich jetzt nicht zu spät komme oder total am Thema vorbeischieße... Leider habe ich im Augenblick keine Zeit, das genau zu Testen - aber hast du schon mal probiert, die Parameter in Anführungszeichen zu setzen? KompilierenMarkierenSeparieren Viele APIs (vielleicht alle) haben extreme Probleme, wenn im Pfad-/Dateinamen oder der Commandozeile Leerzeichen vorkommen. Setzt man die Problemstellen in Anführungszeichen funktioniert es in der Regel.
Wenn ich es richtig verstanden habe, hast du da eine sehr nützliche Sache vor... |
|
|
| |
|
|
|
CB | Hallo AH,
niemand, der zu helfen versucht, schießt am Ziel vorbei! Oft genug gibt eine Idee, auch wenn sie vielleicht nicht bei der aktuellen Problematik weiterhilft, eine nützliche Anregung woanders - oder hilft einem anderen... Die Idee mit den Leerstellen ist gut, bloß scheint es sich bei meinem Problem eher um ein prinzipielles Word-Problem zu handeln. Dasselbe Phänomen tritt auch auf, wenn ich Word mit exakt denselben Parametern von der Befehlszeile starte. Offenbar unterstützt Word (egal, welche Version) mit Startparameter nur Datei öffnen und nicht Datei Neu. Aber selbst wenn dieses Problem nicht wäre: Ich müßte Word ja noch einen weiteren Parameter - nämlich meine INI-Datei - übergeben. In dem Fall interpretiert Word diese Dateiangabe als zu öffnende Datei und zeigt nur den Inhalt der INI an.
Word kann ich, wenn auch nicht ganz so, wie es ideal wäre, starten bis zur Eingabemaske meines Makros. Der einzige Schritt, der mir noch fehlt, wäre die Übergabe der Patienten-ID (meist eine 4-5-stellige Zahl). Rein theoretisch muß das doch irgendwie möglich sein!?
Was das Projekt angeht - das war (und ist es immer noch) wirklich eine extrem ehrgeizige Angelegenheit. Der Pulmologe wollte eigentlich nur ein Formular, in das automatisch alle von der Lungenfunktion gelieferten Werte eingetragen werden und ein paar Felder für die Anamnese (=Patientenangaben zu akt. Beschwerden etc.), seine Befunde, Diagnosen und abschließendes Kalkül (was der Pat. noch oder nicht mehr tun darf). Ich habe ihm dann vorgeschlagen, wenn ich schon alle Werte zur Verfügung habe, sie doch auch gleich auszuwerten (wozu hat man schließlich einen PC?). Als er mir erklärte, daß er das für unmöglich hält....brauche ich noch mehr erzählen? Zu diesem Zeitpunkt hatte ich noch dazu von Pulmologie so gut wie keine Ahnung, aber dafür gibts Bücher und Kollegen! Je mehr ich mich mit der Pulmologie befasst habe, habe ich verstanden, wieso er das für unmöglich gehalten hat! Mittlerweile habe ich eine Treffergenauigkeit der Diagnose von rund 95% erreicht! Mein größtes Problem war die Generierung eines einzigen Satzes! Der Hintergrund: Die Daten für diesen Satz waren auf 4 Variablen aufgebaut, von denen jede 7 verschiedene Werte annehmen kann - etwas über 16.000 Varianten! - und der Satz sollte auf Punkt und Beistrich grammatikalisch richtig sein. Ich habe mehrere Wochen allein dafür gebraucht - der endgültige Code dazu hatte nur rund 200 Zeilen! Knapp 1 1/2 Jahre später war dem Pulmologen das Programm immerhin 100.000 öS (rund 7200€) wert! (Hätte ich das nach Arbeitsstunden verrechnet, würde ich in seiner Ordination sitzen und er beim Arbeitsamt aus- und eingehen...) Nun bin ich dabei, das Ganze zu profanisieren. WORD-Basic ist halt nicht mehr ganz aktuell und VisualBasic taugt mir nunmal überhaupt nicht! Es kann zwar mehr, ist aber irrsinnig umständlich, und die automatische Konvertierung der Makros ist kläglich gescheitert. Ich habs einmal geschafft, bin aber wochenlang an der Fehlerbereinigung gesessen und dann war die Vorlage 3x so groß wie vorher und elends langsam. Dann hab ich mich halt auf die Suche nach einem Basic-orientierten Programmierwerkzeug gemacht und bin bei Euch gelandet. Profan ist über weite Strecken sehr ähnlich zu WordBasic. Vieles konnte ich ohne große Änderungen übernehmen, bin aber weit flexibler. Der einzige Schlüssel, der mir noch fehlt, ist o.a. Problem.
Und nun genug geschwafelt - alle wieder an die Arbeit! - und lasst Euch nie entmutigen, wenn Euch Euer Projekt mal an den Rand der Verzweiflung bringt!
Gruß, Christian |
|
|
| |
|
|
|
| [quote:e3d4c6c712=Christian Bernfeld]@iF
habe jetzt versehentlich bei den Codeschnipseln auf Deine BinPrint geantwortet - steht unter [...]
Christian[/quote:e3d4c6c712]Kein Problem so ists doch sogar gedacht - deshalb haben hier ja Snippets eigene Threads und deshalb habe ich natürlich auch dort geantwortet.
Salve, iF |
|
|
| |
|
|
|
Jörg Sellmeyer | Hallo, Wie wäre es denn, wenn Du mit Profan den gesamten Text erstellst. Das heißt alle Speicherungen aus der Ini auslesen u.s.w. und das dann as Text speicherst. Auch eine Eingabemaske für das Formular ließe sich mit Profan leicht erstellen und die Eingaben in der Ini oder als Text speichern. B.t.w. - Ich glaube Inis dürfen ne nicht bestimmte Größe nicht überschreiten (64k?). Die Textdatei dann als Parameter an Word übergeben und mit einem Makro als Doc mit gleichem Namen speicherst? Gruß Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 21.12.2004 ▲ |
|
|
|
|
CB | Hallo Jörg, klingt bestechend, ich denke wahrscheinlich noch immer zu sehr WORD-Basic...
Als Anhang schicke ich 2 Dateien - diesmal gezippt, sonst wird der Admin ernstlich böse sein auf mich - (ein Mustergutachten, noch in Word erstellt, und eine typische INI schon aus der neuen Version - ist aber von einem anderen Patienten).
Zum Ausprobieren bitte folgendes unbedingt beachten: 1. Zur vollen Funktionalität fehlen sämtliche relevanten Registry-Einträge (ein paar Hundert) 2. Das Dokument basiert auf 2 Vorlagen, von denen nur 1 im Dokument als Makros enthalten ist. (Die 2. wird als ADD-IN verwendet und hat rund 800 kB) D.h., es werden viele Funktionen nicht gehen und Fehlermeldungen hageln, aber die Formularfelder kannst Du alle ausprobieren - mehr als daß Word meckert, passiert nicht. 3. Das Gutachten ist in Word 95 erstellt, bei allen neueren Versionen erfolgt eine automatische Konvertierung - die sollte bei diesen Makros relativ problemlos funktionieren. 4. Um den Schreibschutz zu (de-)aktiveren, bitte immer die Icons in der Symbolleiste (das mit dem Schlüssel) verwenden. Word macht nämlich einen Fehler beim Aktivieren des Formular-Schreibschutzes: ALLE Felder werden geleert.... Wenn Dir das doch mal passieren sollte - schließen ohne speichern und neu laden hilft nicht, weil auch eine Autospeicherung beim Schließen eingebaut ist - VORHER Kopie erstellen oder nachher nochmal downloaden....
Die Ini hat derzeit 4k, viel mehr wirds nicht, außerdem: wenn ich es schaffe, mit Profan-Bordmitteln so ein Formular zu erstellen, brauche ich die Ini nur mehr zur Datensicherung, alle Einträge sind zur Laufzeit als Variable jederzeit verfügbar. Das wäre also auch kein Problem. Nur - wie kann ich ein so komplexes Gebilde mit Profan basteln? Wobei die Formularfelder dann nicht mehr zwingend notwendig wären, weil das Ganze ja online ausgefüllt würde
Gruß, Christian |
| 21 kB | | Kurzbeschreibung: | Mustergutachten aus Word und eine typische INI | | Hochgeladen: | 21.12.2004 | | Ladeanzahl: | | | | Herunterladen |
|
|
| |
|
|
|
CB | Hallo, liebe Profaner! Ich trau mich mal, auszuprobieren, wieweit das Forum lebendig ist: Ich hoffe, Ihr alle habt friedliche Weihnachten verbracht und seid nicht direkt oder indirekt von der schlimmen Katastrophe im Indischen Ozean betroffen! :| In der Zwischenzeit war ich auch nicht untätig und habe in beinahe geistiger Umnachtung wegen schlimmer Kopfschmerzen die Lösung meines Winword-Problems geschafft - der Zustand war vielleicht hilfreich!? Die Lösung ist so einfach, daß ich mich fast geniere, nicht schon früher daraufgekommen zu sein! Drei Zeilen Programmcode - mehr war es nicht - und ich hatte das MISSING LINK zu Winword:
WWStart$ = WW$ + /t + ShortName$(UserDOT$) + \ + Pdot$ + /mANLEGEN mit dieser Variablen werden die Startparameter für Winword eingestellt: Die Leerstellen vor und nach /t sowie nur vor /m sind WICHTIG, sonst funktionierts nicht korrekt! Shortname$(), um das Word-Problem mit den langen Dateinamen bei der Parameterübergabe zu umgehen ********* TESTPARAMETER ********** PatID$ = 1234 die zu übergebende Variable ********************************** PatINI%=@WINEXEC(WWStart$,3) mit Winexec bekomme ich das Handle des aktiven Fensters (=mein Makro-Dialogfenster in der Word-Dokumentvorlage), jetzt brauche ich nur noch mit SendString(PatINI%,PatID$) dem Handle den gewünschten Parameter übergeben - Bingo!
Die korrigierte Version meiner .prf findet Ihr - falls es schon geht - im Attachment, anderenfalls halt später. Vielen herzlichen Dank an alle, die sich Gedanken zu meinem Problem gemacht haben und mir versucht haben zu helfen. Vielleicht kann meine Idee auch mal wer anderer gut gebrauchen - falls dabei Probleme auftauchen: nur zu - meine Mail-Adresse steht Euch zur Verfügung: In diesem Sinne, auf ein erfolgreiches und gesegnetes NEUES JAHR Christian |
|
|
| |
|
|
|
| Das Attachment ist nicht Verfügbar weil die Extension PRF hier gesperrt ist. Das hat den Hintergrund das PRFs von meinem Server anderweitig interpretiert werden und damit das Chaos perfect wäre.
Ich empfehle grundsätzlich als Zip zu attachen.
Salve, iF |
|
|
| |
|
|
|
CB | Hi, Habs schon gemerkt, (.bas ist auch gesperrt - wollte Normann gerade was schicken, habs halt als txt getarnt) Ich habe gerade gemerkt, daß in der .prf sowieso ein kleiner Fehler drin ist, schicke dann die korrigierte zip!
Vielleicht könnte sich zwischenzeitlich jemand Gedanken machen, wie Winword erst geschlossen wird, wenn der Druckauftrag vollständig gesendet worden ist - ich habe in der VisualBasic-Hilfe nix wirklich Sinnvolles gefunden. :roll: (Notfalls täts ein kurzer Warteauftrag.)
Gruß, Christian |
|
|
| |
|
|
|
| Ich kann nur sagen - winWord hat nicht jeder - kost ja auch Geld - openoffice ist kostenlos auch in jeder Firma einsetzbar - und das Thema Drucken ist gegessen.
Salve, iF |
|
|
| |
|
|
|
CB | Geb Dir vollkommen recht! Bloß - wie kann ich in Openoffice den Word-Makros analoge Funktionen ausführen? Da bin ich leider absolut nicht sattelfest. In Word-Makros kenn ich mich dagegen recht gut aus. Bin gerade ganz eifrig am Basteln für Normann und - hoffentlich - bald fertig. Das einzige, was mir noch fehlt, ist, Word zu überreden, nach Abschicken des Druckauftrags gleich ins Nirwana zu gehen und keine blöde Fehlermeldung loszulassen, alles andere geht bereits!
Falls Du mit Dich mit OO gut auskennst - vielleicht könntest Du dann der Community anhand des Beispiels zeigen, wie dasselbe mit OO realisiert werden könnte - das wäre für uns alle sehr hilfreich (ich habe sowohl meine prf als auch das Word-Makro mittlerweile so dokumentiert, daß sich jeder ein Bild machen kann, was wo warum und wie passiert...)
Gruß, Christian |
|
|
| |
|
|
|
Rolf Koch | eine datei als zip? Geht doch bestimmt auch umbenennen? *.frp Rolf |
|
|
| |
|
|