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