Seite 1 von 2
Dokument Formular
Verfasst: So 27. Mai 2012, 12:08
von Fabiii
Hallo,
ich hab noch eine Frage und zwar möchte ich in Formulare Dokumente hinzufügen.
Ich möchte dann Draufklicken können und das Dokument öffnet sich wie geht das.
Beispiel:
Formular Zugeingabe
Bezeichnung
Hersteller
Handbuch
bei Handbuch möchte ich eine pdf Datei hinzufügen.
Wenn ich dann das Formular betrachte möchte ich dass man auf einen Link drückt und das Dokument öffnet sich.
Geht das???
Wie geht es???
Gruß
Fabi
Vielen Dank
Re: Dokument Formular
Verfasst: So 27. Mai 2012, 12:46
von RobertG
Hallo Fabi,
Direkt und ohne Makros geht das natürlich nicht.
Ich habe das folgende einmal mit einem Dateiauswahlfeld getestet:
Code: Alles auswählen
SUB PDF_Aufruf
oDoc=thisComponent
oDrawpage=oDoc.Drawpage
REM Lage des Feldes in dem entsprechenden Formular aufsuchen
oForm=oDrawpage.Forms.getByName("Formular")
oFeld=oForm.getByName("Dateiauswahl")
stFeld=oFeld.Text
shell("acroread",1,stFeld)
END SUB
Hier ist der Befehl zum Aufruf des Acrobat Readers "acroread" - vielleicht bei Dir anders. Damit öffnet sich der Acrobat Reader mit dem Inhalt, den Du im Dateiauswahlfeld angezeigt bekommst. Ob in Windows-Systemen das *.exe dazu gehört kann ich Dir nicht sagen.
Gruß
Robert
Re: Dokument Formular
Verfasst: So 27. Mai 2012, 13:45
von Fabiii
Hallo,
vielen Dank für deine Antwort.
Könntest du mir die Datenbank schicken in der du es gemacht hast.
Dann kann ich es besser nachvollziehen was du meinst.
Gruß
Fabi
Re: Dokument Formular
Verfasst: So 27. Mai 2012, 17:16
von RobertG
Halo Fabi,
der Code war leider nicht ganz vollständig. So wurde der Text aus der Dateiauswahl nicht gelesen.
Hier noch einmal der vollständige Code:
Code: Alles auswählen
SUB PDF_Aufruf
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
oDoc=thisComponent
oDrawpage=oDoc.Drawpage
REM Lage des Feldes in dem entsprechenden Formular aufsuchen
oForm=oDrawpage.Forms.getByName("Formular")
oFeld=oForm.getByName("Dateiauswahl")
REM Den Text aus der Dateiauswahl auslesen
stFeld=oFeld.Text
REM Start des *.pdf-Files mit der entsprechenden Datei
REM 1: Das Programm erhält den Fokus und wird in einem Fenster in Normalgröße gestartet.
shell("acroread",1,stFeld)
END SUB
Ich hänge die Datei an. Allerdings gilt der Aufruf so nur in Linux-Systemen. Ich habe hier kein Windows-System zum Vergleich. Dort musst Du gegebenenfalls das Programm anders aufrufen. Siehe dazu den Thread von Harald ...
Es gibt ansonsten noch eine Methode, das ganze ohne die Programmangabe zu starten. Theoretisch müsste dann statt
shell("acroread",1,stFeld)
stehen
DIM oShell AS OBJECT
oShell = createUnoService("com.sun.star.system.SystemShellExecute")
oShell.execute(stFeld,,0)
Das hat bei mir aber nicht den entsprechenden Erfolg gezeigt.
Gruß
Robert
Re: Dokument Formular
Verfasst: So 27. Mai 2012, 18:21
von Fabiii
Hallo,
vielen Dank für deine Antwort.
So von dem Prinziep gefällt mir das sehr, sehr gut.
Nur funktioniert es bei mir natürlich nicht da ich Windows hab.
Ich hab jetzt nicht ganz genau verstanden was geändert werden muss.
Wer sehr dankbar wenn mir jemand den Linux Code in einen Windows Code übersetzten könnte.
Vielen Dank
Fabi
Hier nochmal der Code
Code: Alles auswählen
REM ***** BASIC *****
SUB PDF_Aufruf
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
oDoc=thisComponent
oDrawpage=oDoc.Drawpage
REM Lage des Feldes in dem entsprechenden Formular aufsuchen
oForm=oDrawpage.Forms.getByName("Formular")
oFeld=oForm.getByName("Dateiauswahl")
REM Den Text aus der Dateiauswahl auslesen
stFeld=oFeld.Text
REM Start des *.pdf-Files mit der entsprechenden Datei
REM 1: Das Programm erhält den Fokus und wird in einem Fenster in Normalgröße gestartet.
shell("acroread",1,stFeld)
END SUB
Re: Dokument Formular
Verfasst: So 27. Mai 2012, 19:37
von harald235
Hallo Fabiii,
der Code für die letzte Zeile des Makros lautet unter Windows 7 (64bit):
Code: Alles auswählen
shell("C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe",1,stFeld)
Der Aufruf muß mit dem "wirklichen" Pfad erfolgen: im Win-Explorer steht als Pfad "C:\Programme (x86)\Adobe ..." , aber der wirkliche Pfad "C:\Program Files (x86)\Adobe ..." muß eingesetzt werden, also nicht die deutsche Übersetzung.
Wenn Dein Pfad zum Reader - oder Deine Version vom Reader - anders ist, klicke mit der rechten Maustaste das Icon vom Acrobat-Reader auf dem Desktop an, gehe auf "Eigenschaften". Dort siehst Du unter "Ziel" den Pfad zum Reader. Den übernimm in die letze Zeile des Makros von Robert.
Gruß harald
Re: Dokument Formular
Verfasst: So 27. Mai 2012, 19:47
von Fabiii
Hallo,
vielen Dank für deine Antwort.
Ich habe nur Windows 7 32 Bit.
Ändert sich was an dem Code ?
Was ändert sich ?
Vielen Dank
Fabi
Re: Dokument Formular
Verfasst: So 27. Mai 2012, 19:52
von harald235
Fabiii,
lies den ganzen Beitrag. Da habe ich Dir beschrieben was zu tun ist. Wahrscheinlich fällt nur das (x86) weg.
Gruß harald
Re: Dokument Formular
Verfasst: So 27. Mai 2012, 19:56
von Fabiii
Hallo,
hab ich gemacht doch es geht nicht.
Der Code
Code: Alles auswählen
REM ***** BASIC *****
SUB PDF_Aufruf
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
oDoc=thisComponent
oDrawpage=oDoc.Drawpage
REM Lage des Feldes in dem entsprechenden Formular aufsuchen
oForm=oDrawpage.Forms.getByName("Formular")
oFeld=oForm.getByName("Dateiauswahl")
REM Den Text aus der Dateiauswahl auslesen
stFeld=oFeld.Text
REM Start des *.pdf-Files mit der entsprechenden Datei
REM 1: Das Programm erhält den Fokus und wird in einem Fenster in Normalgröße gestartet.
shell("C:\Program Files\Adobe\Reader 10.0\Reader",1,stFeld)
END SUB
Gruß
Fabi
Re: Dokument Formular
Verfasst: So 27. Mai 2012, 20:14
von harald235
Hallo Fabiii,
hast Du nur das (x86) weggemacht? Oder wie beschrieben den richtigen Pfad aus den Eigenschaften des Acrobat-Reader geholt?
Wenn Dein Reader nicht Version 10.0 ist, funktioniert es nicht.
Gruß harald