Seite 1 von 1

Ändern des FileLink einer TextSection in Libreoffice Basic

Verfasst: Mo 15. Apr 2013, 14:11
von Bodybag1
Hallo,
ich versuche in Libreoffice Basic den FileLink einer TextSection zu ändern.
Ich nutze dafür folgenden Code:

Code: Alles auswählen

sub ChangeLanguage
	Dim oDoc As Object
	Dim oSections As Object
	Dim oSec As Object
		
	oDoc = ThisComponent
	oSections = oDoc.getTextSections()
	
	Dim i&
	For i = 0 To oSections.getCount()-1
		oSec = oSections.getByIndex(i)
		msgbox oSec.FileLink.FileURL
		oSec.FileLink.FileURL = "file:///M:/test/test_en.odt"
		msgbox oSec.FileLink.FileURL
	Next i
end sub
Das Problem ist, dass der Code nicht geändert wird. Die FileUrl bleibt bei "file:///M:/test/test_de.odt".
Die Idee dahinter ist die, dass ich mit einem Listenfeld eine Sprache auswähle und der die Bereiche alle so ändert, dass die Datei mit der anderen Sprache gewählt wird.
Damit will ich mir das Kopieren von fremdsprachigen Textteilen aus anderen Dokumenten in mein aktuelles Dokument ersparen.
Ich bin natürlich auch gerne offen für andere Vorschläge, wie ich dieses Vorhaben realisieren kann.

Falls das wichtig sein sollte, ich nutze Win7 64 und Libreoffice 3.6.3.2 (Build ID: 58f22d5)

Re: Ändern des FileLink einer TextSection in Libreoffice Bas

Verfasst: Mi 17. Apr 2013, 22:28
von F3K Total
Hi,
ich habe dir was für deutsch und englisch gebastelt, in Datei 1.odt müssen im Makro die Pfade zu 2.odt und 3.odt angepasst werden, dann funzt es.

Code: Alles auswählen

    sub ChangeLanguage
       Dim oDoc As Object
       Dim oSections As Object
       Dim oSec As Object
       oform = thiscomponent.drawpage.forms.Formular
       olstLanguage =  oform.lstLanguage
       if olstLanguage.currentvalue = "deutsch" then
       sUrl = converttourl("C:\Users\<>\Desktop\3.odt")
       else
       sUrl = converttourl("C:\Users\<>\Desktop\2.odt")
       endif
       oDoc = ThisComponent
       oSections = oDoc.getTextSections()
         Dim i&
       For i = 0 To oSections.getCount()-1
          oSec = oSections.getByIndex(i)
          oflink = oSec.FileLink
          oflink.FileURL = surl
          'osec.LinkRegion = "Bereich1"
          oSec.FileLink = oflink
         Next i
    end sub
Gruß R

Re: Ändern des FileLink einer TextSection in Libreoffice Bas

Verfasst: Do 18. Apr 2013, 11:05
von Bodybag1
Du bist mein Held, Danke! :D Das ist genau das, was ich gesucht habe. Funktioniert super.