PDF Datei aus Datenbank öffnen
Moderator: Moderatoren
PDF Datei aus Datenbank öffnen
Hallo alle zusammen,
ich habe mir eine kleine Datenbank für meine Elektronikbauteile angelegt. Dort habe ich ein Datenfeld, welches den namen einer PDF Datei enthält. Diese Datei ist das Datenblatt zu dem Aktuell angezeigtem Bauelement.
Die Datenbank befindet sich in einem Verzeichnis das soll frei wählbar bleiben, die Datenblätter bzw. PDF Dateien befinden sich im gleichen Verzeichnis wie die Datenbank jedoch im Unterverzeichnis \Data\ ... Beispiel: \Data\74HC02.pdf .... im Datenfeld steht nur 74HC02.pdf
Beim klick auf das Textfeld oder auch auf einen Button soll die PDF geöffnet werden.
Vielleicht mit einem BASIC Script? Habe damit aber noch nie was gemacht.
Danke Gruß Peter
ich habe mir eine kleine Datenbank für meine Elektronikbauteile angelegt. Dort habe ich ein Datenfeld, welches den namen einer PDF Datei enthält. Diese Datei ist das Datenblatt zu dem Aktuell angezeigtem Bauelement.
Die Datenbank befindet sich in einem Verzeichnis das soll frei wählbar bleiben, die Datenblätter bzw. PDF Dateien befinden sich im gleichen Verzeichnis wie die Datenbank jedoch im Unterverzeichnis \Data\ ... Beispiel: \Data\74HC02.pdf .... im Datenfeld steht nur 74HC02.pdf
Beim klick auf das Textfeld oder auch auf einen Button soll die PDF geöffnet werden.
Vielleicht mit einem BASIC Script? Habe damit aber noch nie was gemacht.
Danke Gruß Peter
Re: PDF Datei aus Datenbank öffnen
Hallo alle zusammen,
vielleicht habe ich es etwas umständlich beschrieben. Also der Tastendruck soll dann den Adobe Reader starten mit der Datei. ...
also möglichst einfach.
Gruß Peter
vielleicht habe ich es etwas umständlich beschrieben. Also der Tastendruck soll dann den Adobe Reader starten mit der Datei. ...
also möglichst einfach.
Gruß Peter
Re: PDF Datei aus Datenbank öffnen
Hi,
habe noch immer keine Lösung, aber vielleicht eine Idee.
Zurzeit habe ich mein Inventar in einer Tabellenkalkulation, dort habe ich ein Feld mit dem Text Datanblatt, auf diesem Text liegt der Hyperlink file:///D:/DATA/xyz.PDF
Naja jetzt bräuchte ich nur die nötigen Basic Befehle um die Felder auszulesen und dann den hyperlink zusammenzusetzen und zu starten.
Gruß Peter
habe noch immer keine Lösung, aber vielleicht eine Idee.
Zurzeit habe ich mein Inventar in einer Tabellenkalkulation, dort habe ich ein Feld mit dem Text Datanblatt, auf diesem Text liegt der Hyperlink file:///D:/DATA/xyz.PDF
Naja jetzt bräuchte ich nur die nötigen Basic Befehle um die Felder auszulesen und dann den hyperlink zusammenzusetzen und zu starten.
Gruß Peter
Re: PDF Datei aus Datenbank öffnen
Hallo Peter
ich habe ein so ähnliche Problem.
Bei mir geht es darum aus einem Dialog oder bestimmte Dateien zu starten (z.B PDF-Datei. oder CAD-File)
Das Problem scheint zu sein, dass man in OOO keine nicht Text/Tabellen-Dokumente starten kann.
Ich hab zumindest noch nicht herausgefunden wie ich z.B. eine "Zeichnung.dwg" starten kann und diese mit der entsprechenden Anwendung startet.
Es könnte aber evtl mit der Shell-Anweisung gehen. Mit der kann ich fremde Anwendungen starten und auch Parameter übergeben.
Hier mal ein Sub was den Explorer startet.
vielleicht hilft das ja schon weiter
Gruss Mobbi
ich habe ein so ähnliche Problem.
Bei mir geht es darum aus einem Dialog oder bestimmte Dateien zu starten (z.B PDF-Datei. oder CAD-File)
Das Problem scheint zu sein, dass man in OOO keine nicht Text/Tabellen-Dokumente starten kann.
Ich hab zumindest noch nicht herausgefunden wie ich z.B. eine "Zeichnung.dwg" starten kann und diese mit der entsprechenden Anwendung startet.
Es könnte aber evtl mit der Shell-Anweisung gehen. Mit der kann ich fremde Anwendungen starten und auch Parameter übergeben.
Hier mal ein Sub was den Explorer startet.
Code: Alles auswählen
Sub ExampleShellForWin
Shell("c:\windows\explorer.exe",2)
end sub
Gruss Mobbi
Re: PDF Datei aus Datenbank öffnen
Hallo Peter,
habe inzwischen noch ein wenig mit unserem Problem gebastelt
Der Aufruf von
startet aber nur die Anwendung. Und die kann auf verschiedenen Rechnern an anderen Orten liegen.
Vergiss das also wieder.
Versuchs mal mit den folgenden Zeilen
Diese Codezeilen starten die Datei "Zeichnungen.pdf" automatisch im AdobeReader.
Das geht natürlich auch mit anderen Anwendungen z.B. CAD-Programme
Damit bekomme ich endlich mein Projektverwaltung fertig und kann direkt von dort alle Dateien öffen (ging bisher nur mit OOO-Files)
viel Spaß beim probieren
Gruss Mobbi
habe inzwischen noch ein wenig mit unserem Problem gebastelt
Der Ansatz über die Shell funktioniert.sirpete83 hat geschrieben: Zurzeit habe ich mein Inventar in einer Tabellenkalkulation, dort habe ich ein Feld mit dem Text Datanblatt, auf diesem Text liegt der Hyperlink file:///D:/DATA/xyz.PDF
Naja jetzt bräuchte ich nur die nötigen Basic Befehle um die Felder auszulesen und dann den hyperlink zusammenzusetzen und zu starten.
Der Aufruf von
Code: Alles auswählen
Sub ExampleShellForWin
Shell("c:\windows\explorer.exe",2)
end sub
Vergiss das also wieder.
Versuchs mal mit den folgenden Zeilen
Code: Alles auswählen
Sub ExtPDF_Starten
set extShell = CreateObject("Shell.Application")
extShell.Open "d:\test\Zeichnung.pdf"
'extShell.Open "d:\test\archiv.dwg"
end sub
Das geht natürlich auch mit anderen Anwendungen z.B. CAD-Programme

viel Spaß beim probieren
Gruss Mobbi
Re: PDF Datei aus Datenbank öffnen
Hallo Mobbi,
vielen dank für deine Antworten und Ideen, werde das heute mal testen.
Was mir jetzt nur noch fehlt ist wie ich den Dateinamen als Variable bekomme. Also entweder aus dem Textfeld im formblatt oder aber direkt aus der Datenbank, um damit dann den Datei-Pfad zusammen zu bauen.
Gruß Peter
vielen dank für deine Antworten und Ideen, werde das heute mal testen.
Was mir jetzt nur noch fehlt ist wie ich den Dateinamen als Variable bekomme. Also entweder aus dem Textfeld im formblatt oder aber direkt aus der Datenbank, um damit dann den Datei-Pfad zusammen zu bauen.
Gruß Peter
Re: PDF Datei aus Datenbank öffnen
Ich verstehe die Frage nicht so ganz.sirpete83 hat geschrieben: Was mir jetzt nur noch fehlt ist wie ich den Dateinamen als Variable bekomme. Also entweder aus dem Textfeld im formblatt oder aber direkt aus der Datenbank, um damit dann den Datei-Pfad zusammen zu bauen.
Willst du den Dateinamen
1. aus der Zelle des Tabellenblattes auslesen oder
2. aus einen Textfeld in deinem Dialog/Formular?
Beides ist relativ einfach:
zu 1.
Code: Alles auswählen
oDoc = thisComponent
VorSheet=oDoc.Sheets.getByName("Tabelle1")
sZelle = VorSheet.getCellRangeByName("A3").getString
Code: Alles auswählen
Inhalt =oDialog.getControl("TextField1").Text 'Falls die Werte z.B. in einer Textfeld stehen.
Gruss Mobbi
Re: PDF Datei aus Datenbank öffnen
Bei mir reicht es aus wenn ich den Dateinamen in anführungszeichen"" setze. Auch dann wenn du Eine Variable übergibst.Schroebi hat geschrieben: Eine Frage noch, gibt es da auch einen Trick das die Leerstellen im Dateinamen "übersehen" werden.
Sollte dann in etwa so aussehen:
Code: Alles auswählen
Sub Test
set extShell = CreateObject("Shell.Application")
sfile = "Neu Textdatei.txt"
extShell.Open "d:\Test\" &sFile
End Sub
Re: PDF Datei aus Datenbank öffnen
Hallo,
ich war schon seit längerem auf der Suche nach einer Lösung für das Problem, das ihr in diesem Thread beschreibt.
Leider kriege ich es nicht hin Mobbis Lösungsvorschläge zu kombinieren.
"d:\test\Zeichnung.pdf" habe ich versucht, durch den Inhalt eines Textfeldes im Formular mit dem Namen "TextBox" zu ersetzen.
Ich komme aber mit dem Befehl
Kann mir jemand weiterhelfen?
Gruß BJay
ich war schon seit längerem auf der Suche nach einer Lösung für das Problem, das ihr in diesem Thread beschreibt.
Leider kriege ich es nicht hin Mobbis Lösungsvorschläge zu kombinieren.
Soweit kein Problem.Mobbi hat geschrieben: Sub ExtPDF_Starten
set extShell = CreateObject("Shell.Application")
extShell.Open "d:\test\Zeichnung.pdf"
'extShell.Open "d:\test\archiv.dwg"
end sub
"d:\test\Zeichnung.pdf" habe ich versucht, durch den Inhalt eines Textfeldes im Formular mit dem Namen "TextBox" zu ersetzen.
Ich komme aber mit dem Befehl
nicht zurecht.Mobbi hat geschrieben:Inhalt =oDialog.getControl("TextField1").Text
Kann mir jemand weiterhelfen?
Gruß BJay
Re: PDF Datei aus Datenbank öffnen
Diese Zeile ist eine Makroanweisung bei der Auswertung eines Dialoges (siehe Beispiel)BJay hat geschrieben:
Soweit kein Problem.
"d:\test\Zeichnung.pdf" habe ich versucht, durch den Inhalt eines Textfeldes im Formular mit dem Namen "TextBox" zu ersetzen.
Ich komme aber mit dem Befehlnicht zurecht.Mobbi hat geschrieben:Inhalt =oDialog.getControl("TextField1").Text
Code: Alles auswählen
Dim oDialog as Object ' Variable für Dialog1
Sub OKTaste
'Daten aus Dialog auslesen ------------------------
BV = odialog.getControl("TextField1").text
Verl = odialog.getControl("TextField2").text
Bear = odialog.getControl("ComboBox2").text
Inhalt = odialog.getControl("TextField3").text
...
odialog ist das Objekt welches den Dialog enthält. (Der Dialog selbst wir bei mir in einem anderen Makro erzeugt und gestartet)
mit getControl("Textfield1").text bekommst Du den Textinhalt des Dialogfeldes "Textfield1")
Ich hoffe das hilft Dir erstmal weiter
Gruß
Mobbi
Re: PDF Datei aus Datenbank öffnen
Wenn ich dich richtig verstanden habe soll der Curser irgendwo in der Tabelle stehen und die dabei "aktuelle Zeile" soll dann auch die Zeile sein aus der dein Marko die Referenzadresse für das PDF nimmt!
z.B. PDF-Referenzen stehen in Spalte D; Curser steht auf "B5"; Dann soll aus Zelle D5 der Pfad für die Datei kommen sobald du auf PDF öffnen klickst?
Das gehört zwar in nen anderen Bereich aber versuch es mal mit .getCurrentSelection() ...
etwa so:
und dann nur noch die Zelle Dx (x= ermittlete Zeile) auslesen und an an die Shell übergeben.
Gruß
Mobbi
z.B. PDF-Referenzen stehen in Spalte D; Curser steht auf "B5"; Dann soll aus Zelle D5 der Pfad für die Datei kommen sobald du auf PDF öffnen klickst?
Das gehört zwar in nen anderen Bereich aber versuch es mal mit .getCurrentSelection() ...
etwa so:
Code: Alles auswählen
Sub Curserpos_Zeile
Dim oDoc as Object ' das Dokument
DIM oZelle as Object 'Das Zell-Objekt
Dim Ze as Integer
oDoc = ThisComponent
oZelle = oDoc.getCurrentSelection()
'Abfrage Multiselektion
If Not oZelle.supportsService("com.sun.star.sheet.SheetCell") then 'Mehrere Zellen markiert
msgbox("Bitte max. 1 Zelle auswählen!")
exit Sub
End if
Ze = lTrim(Str(oZelle.CellAddress.row +1)) 'Zeilenpos bestimmen
Msgbox( "Zeile : " &Ze)
End Sub
Gruß
Mobbi