Dateiverlinkungen aus Tabelle

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

schwammer
Beiträge: 7
Registriert: Di, 26.06.2018 11:18

Dateiverlinkungen aus Tabelle

Beitrag von schwammer »

hallo, ich versuche gerade Links, die ich in einer Spalte gespeichert habe, in mehere Dokumente als Hyperlink einzufügen.
Doch leider wird es im Dokument nicht als Hyperlink übernommen.
In Calc habe ich die Hyperlinks mit der HYPERLINK- Formel erstellt.

Code: Alles auswählen

Public Const personenSheet= 1

Code: Alles auswählen

	
	pfad = ConvertFromURL(thisComponent.sheets(menuSheet).getCellRangeByName(tm).String)
			filename =  FileNameoutofPath(pfad)
			file_n = GetFileNameWithoutExtension(filename) ' ? dito
    		neueFile =  file_n & "." & GetFileNameExtension(filename)


	
	
	
	thisComponent.sheets(personenSheet).getCellRangeByName("c" + zeile).formulaLocal = _
		 "=HYPERLINK("+chr(34)+ConvertFromURL(pfad)+chr(34)+ ";"+chr(34)+ neueFile +chr(34)+ ")"

Code: Alles auswählen

		Table2=Tables.getbyName("Tabelle4")
   	  	
   	 	 'file:///Dateipfad.pdf
   	  	
	
		writerfile = Convertfromurl(thisComponent.sheets(personenSheet).getCellRangeByName("E" & zeile).string 
			
		writerFile =Replace(writerFile, "\", "/")
		writerfile =Repalce(writerfile, " ", "%20")

   
   	  	Table2.getCellbyPosition(1,5).String  ="file:///" & writerfile
   	  	

Die Ausgabe in dem Writer Dokument sieht dann folgendermaßen aus

file:///C:/Users/Test%20Test/Desktop/Ordner1/Ordner2/Mustervorlage/tm.pdf

Ich hab mir den aufbau beim manuellen erstellen eines hyperlinks abgeschaut und dann versucht das Ganze nachzubauen.

Reload des Dokumentes hat leider auch nicht geklappt und ich bin mir auch sicher das es eine angenehmere und saubere lösung existiert.



Und kann man bei einer Auswahlliste, die werte aus einem anderen sheet entnimmt, auch als hyperlink übertragen ?

Ich hab in dem anderen sheet eine spalte mit hyperlinks (auch mit der HYPERLINK formel erstellt) und diese würde gerne als auswahlliste (gültigkeit) übertragen.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Dateiverlinkungen aus Tabelle

Beitrag von Stephan »

in ein Writer-Dokument, sollte man so einen LInk einfügen können:

Code: Alles auswählen

Sub Link()

x = "C:/Users/Test Test/Desktop/Ordner1/Ordner2/Mustervorlage/tm.pdf"

oViewCursor = ThisComponent.getCurrentController().getViewCursor()
oCursor = ThisComponent.Text.createTextCursorByRange(oViewCursor)

oCursor.String = x
oCursor.HyperLinkURL = ConvertToURL(x)

End Sub
Gruß
Stephan
schwammer
Beiträge: 7
Registriert: Di, 26.06.2018 11:18

Re: Dateiverlinkungen aus Tabelle

Beitrag von schwammer »

an sich funktioniert das bespiel ganz gut. nur habe ich jetz probleme, meinen textcursor an die Tabelle4 mit position (1 , 5) zu setzen.
viewcursor funktioniert ohne probleme
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Dateiverlinkungen aus Tabelle

Beitrag von Stephan »

z.B.

Code: Alles auswählen

oZelle = ThisComponent.getTextTables.getbyName("Tabelle4").getCellByPosition(1,5)
oCursor = oZelle.Text.createTextCursor()
Gruß
Stephan
schwammer
Beiträge: 7
Registriert: Di, 26.06.2018 11:18

Re: Dateiverlinkungen aus Tabelle

Beitrag von schwammer »

Vielen vielen dank.
ich versuche schon seit stunden dahinter zu kommen.
ich dachte man braucht den viewcursor auch um den textcursor steuern zu können
dann bin ich noch auf tabletextcursor gestoßen und habe jetzt damit versucht, die ganze zeit etwas zu realisieren.
schwammer
Beiträge: 7
Registriert: Di, 26.06.2018 11:18

Re: Dateiverlinkungen aus Tabelle

Beitrag von schwammer »

Jetzt habe ich noch eine Kleine Frage zu dem Dropdownmenü und zwar:

ist es möglich ein Dropdown menü (Daten -> Gültigkeit -> Liste) dynamisch per makro zu erstellen
Ein Eintrag soll wie folgt aufgebaut sein

=HYPERLINK($TOM.$B$3:$B$3;$TOM.$A$3:$A$3)

Da Die Tabelle Tom auch dynamisch aufgebaut ist, ist es sehr unschön eine statische Liste zu erzeugen.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Dateiverlinkungen aus Tabelle

Beitrag von Stephan »

schwammer hat geschrieben: Mi, 27.06.2018 10:20 Jetzt habe ich noch eine Kleine Frage zu dem Dropdownmenü und zwar:

ist es möglich ein Dropdown menü (Daten -> Gültigkeit -> Liste) dynamisch per makro zu erstellen
Ein Eintrag soll wie folgt aufgebaut sein

=HYPERLINK($TOM.$B$3:$B$3;$TOM.$A$3:$A$3)

Da Die Tabelle Tom auch dynamisch aufgebaut ist, ist es sehr unschön eine statische Liste zu erzeugen.
Und wozu soll das gut sein? Jeder Versuch bei einer solchen Liste eine Auswahl vorzunehmen, endet damit das zum zuletzt gewählten Linkziel gesprungen wird, ohne Chance das die Liste überhaupt ausklappt.


Gruß
Stephan
schwammer
Beiträge: 7
Registriert: Di, 26.06.2018 11:18

Re: Dateiverlinkungen aus Tabelle

Beitrag von schwammer »

Achso das wusste ich nicht. das ist in der Tat unnötig.^^

Ich hab in meiner "haupttabelle" eine dynamische Anzahl an Dokumenten(docx) Als eine Art Verzeichnis aufgelistet. In den verschiedenen Spalten werden jeweils Daten aus den Dokumenten entnommen und diese können dann Mittels "haupttabelle" bearbeitet werden und darüber auch gespeichert werden.
In einer der Spalten, werden nochmal Dateipfade zu extra Dokumenten (pdf) ausgelesen, die in die anderen Dokumenten (docx) als Hyperlink eingebunden werden.
die Extra dokumente (pdf) werden in einem neuen Sheet dynamisch aufgelistet.

Mein Ziel war es jetzt in der "haupttabelle" bei der Spalte mit den extra Dokumenten eine DropDown Liste zu erstellen, welche die Einträge aus dem Sheet entnimmt, um so das Ändern der Hyperlinks zu erleichtern.


Ich hab mal eine kleines Bild dazu gemacht, damit es evtl. etwas verständlicher ist^^.
tt.PNG
tt.PNG (23.79 KiB) 26682 mal betrachtet
Meine Frage, gibt es eine Alternative zu diese Dropdownliste. Momentan habe ich das ganze mittels Daten -> Gültigkeit -> Zellbereich gelöst.
Nur leider klappt das mit dem Hyperlink dann nicht :S


Vll. noch als Hinweis: es gibt noch eine Extra Tabelle die als Steuerboard mit Buttons, wie "Alle Dokumenten Änderungen übernehmen" oder "haupttabelle neuladen", funktioniert.

Mein Modul ist inzwischen knapp 700 zeilen groß und ich versuche sofern es (mir) möglich ist, das ganze dynamisch zu halten.

edit://

Hat sich erledigt. Ich lasse das mit dem Zellbereich stehen.
Antworten