gelöschte Buttons werden mitgespeichert ?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: gelöschte Buttons werden mitgespeichert ?

Re: gelöschte Buttons werden mitgespeichert ?

von DPunch » Mo, 13.09.2010 15:49

Aloha
clag hat geschrieben:nach dem ich für das wiederholte laden der bearbeiteten und gespeicherten Datei "odoc" einen anderen Namen "oDoc2" vergeben habe
Das wäre gar nicht nötig gewesen - Du hättest einfach nur auch konsequent mit den entsprechenden Variablen weiterarbeiten müssen.
Du könntest z.B. auch alle "oDoc2" in Deinem Code-Ausschnitt in "odoc" umbenennen und Dein Code würde problemlos laufen. ;)
clag hat geschrieben:allerding gibt es eine Fehlermeldung wenn ich _blank oder _hidden als Prameter mitgebe ?
Als zweiter Parameter wird ein Frame-Name erwartet - der Parameter muss also entsprechend als String gekennzeichnet sein, sprich "_blank".

Versteckt öffnen funktioniert allerdings nicht auf diese Weise, sondern so:

Code: Alles auswählen

Dim myProp(0) as New com.sun.star.beans.PropertyValue
myProp(0).Name = "Hidden"
myProp(0).Value = True
oDoc2 = StarDesktop.loadComponentFromURL(WEBDateiurl,"_blank",0,myProp)

Re: gelöschte Buttons werden mitgespeichert ?

von clag » So, 12.09.2010 15:21

Hallo DPunch,

nach langen "try and error Orgien" hab ich es hin bekommen allerdings auf etwas anderen Weg,

nach dem ich für das wiederholte laden der bearbeiteten und gespeicherten Datei "odoc" einen anderen Namen "oDoc2" vergeben habe,
funktioniert jetzt die Version
Datei speichern
Datei schließen
Datei erneut laden
Datei als txt exportieren
Datei als PDF exportieren (jetzt ohne Buttons) :D
Datei schließen

Code: Alles auswählen

' Datei schließen
        odoc.close(true)

' Datei erneut laden 
        oDoc2 = StarDesktop.loadComponentFromURL(WEBDateiurl, , 0, myProp() )
'        oDoc2.lockcontrollers

' den Dateinamen und Pfad zusammen setzen und Export als .info Text-Datei
        datei1= "H:\WEB-load\- neu\" & releaseDate & " -- " & myText02 & "\" & myText02 & ".info" ' setzt den Pfad zusammen
        dateiurl1=ConvertToUrl(datei1) ' wandelt den Pfad in URL form und schreibt ihn in die Variable "dateiurl1"
        oDoc2.storetourl(dateiurl1,myFileProptxt())

' den Dateinamen und Pfad zusammen setzen und Export als PDF Datei
        datei2= "H:\WEB-load\- neu\" & releaseDate & " -- " & myText02 & "\" & myText02 & ".pdf" ' setzt den Pfad zusammen
        dateiurl2=ConvertToUrl(datei2) ' wandelt den Pfad in URL form und schreibt ihn in die Variable "dateiurl2"
        oDoc2.storetourl(dateiurl2,myFileProp_pdf() )

' Dateie schließen
        oDoc2.close(true)
allerding gibt es eine Fehlermeldung wenn ich _blank oder _hidden als Prameter mitgebe ?
oDoc2 = StarDesktop.loadComponentFromURL(WEBDateiurl, _hidden, 0, myProp() )

was könnte dafür der Grund sein ?

Re: gelöschte Buttons werden mitgespeichert ?

von DPunch » Sa, 11.09.2010 17:11

Aloha
clag hat geschrieben:kann mir jemand sagen was ich da falsch mache ?
Aber sicher.

Code: Alles auswählen

odoc.close(true) '<----------------------------- odoc wird disposed
oDocument = StarDesktop.loadComponentFromURL(dateiurl, , 0, myProp() )
(...)
odoc.storetourl(dateiurl2,myFileProp_pdf() ) '<------------------------------------------- kann also nicht funktionieren
odoc wird mit den Close disposed. Du meinst vermutlich eher

Code: Alles auswählen

oDocument.storetourl(dateiurl2,myFileProp_pdf() )
bzw

Code: Alles auswählen

oDoc = StarDesktop.loadComponentFromURL(dateiurl, , 0, myProp() )
clag hat geschrieben:Wenn ich nun im verlauf des Makro nach dem entfernen der Buttons diese Datei noch als PDF exportiere,
werden in der PDF Datei aber alle Buttons die vorher eigentlich schon entfernt wurden trotzdem dargestellt ?
Das liegt daran, dass die Buttons noch auf der Drawpage vorhanden sind.
Du löschst lediglich das Model des Buttons.
Um auch die Zeichnung sofort zu entfernen, musst Du sie entsprechend aus der Drawpage nehmen.

Code: Alles auswählen

	Globalscope.BasicLibraries.loadLibrary("Tools")

	oDoc = StarDesktop.loadComponentFromURL(dateiurl, , 0, Array() )
	oDoc.lockcontrollers
	oDrawPage = oDoc.DrawPage
	oForm = oDrawPage.Forms.getByIndex(0)
	
	aControlElementsToRemove = Array("Schaltfläche 1","Schaltfläche 2","Schaltfläche 3",_
					"Schaltfläche 4","Schaltfläche 5","Schaltfläche 6","Schaltfläche 7","Numerisches Feld 1")
	
	For i = 0 To UBound(aControlElementsToRemove)
		sControlName = aControlElementsToRemove(i)
		If oForm.hasByName(sControlName) then
			oForm.removeByName(sControlName)  
		End If
	Next i
	
	For n = oDrawpage.Count-1 To 0 Step -1
		oThisShape = oDrawpage.getByIndex(n)
		If NOT isNull(oThisShape.Control) Then
			sControlName = oThisShape.Control.Name
			If IndexInArray(sControlName,aControlElementsToRemove) > -1 Then
				oDrawpage.remove(oThisShape)
	 		End If
		End If
	Next n
	oDoc.unlockControllers

Re: gelöschte Buttons werden mitgespeichert ?

von clag » Sa, 11.09.2010 16:28

Hallo Leutz,

meine Idee das oben beschriebene Problem zu umschiffen indem ich
vor dem PDF Export die Writer-Datei schließe und erneut zu öffne
(weil in der neu geöffneten Datei gibt es keine Buttons mehr) geht leider auch schief,

Code: Alles auswählen

        odoc.close(true)
        oDocument = StarDesktop.loadComponentFromURL(dateiurl, , 0, myProp() )
' den Dateinamen und Pfad zusammen setzen und Export als PDF Datei
        datei2= "H:\WEB-load\- neu\" & releaseDate & " -- " & myText02 & "\" & myText02 & ".pdf" ' setzt den Pfad zusammen
        dateiurl2=ConvertToUrl(datei2) ' wandelt den Pfad in URL form und schreibt ihn in die Variaable "dateiurl"

        odoc.storetourl(dateiurl2,myFileProp_pdf() )
der Speichervorgang wird nun mit einem Fehler abgebrochen
(die per Makro geöffnete Datei ist merkwürdigerweise schreibgeschützt ? )

BASIC-Laufzeitfehler
Es ist eine Exeption aufgetreten
Type: com.sun.lang.DisposedExceptior
Message:.

kann mir jemand sagen was ich da falsch mache ?

gelöschte Buttons werden mitgespeichert ?

von clag » Sa, 11.09.2010 14:50

Hallo Kenner und Könner,

auf einer Seiten-Vorlage habe ich einige Buttons platziert und mit Makros belegt um die damit erstelle Datei zu bearbeiten
zum speichern der Datei wird ebenfalls ein Makro gestartet das unter anderem alle Buttons entfernt was soweit auch einwandfrei funktioniert.

Wenn ich nun im verlauf des Makro nach dem entfernen der Buttons diese Datei noch als PDF exportiere,
werden in der PDF Datei aber alle Buttons die vorher eigentlich schon entfernt wurden trotzdem dargestellt ?

wie kann ich erreichen, dass die PDF Datei ohne die Buttons gespeichert wird ?

der Teil im code sieht so aus

Code: Alles auswählen

' alle Buttons entfernen
        odoc.drawpage.forms.getByIndex(0).removeByName("Schaltfläche 1") 
        odoc.drawpage.forms.getByIndex(0).removeByName("Schaltfläche 2")
        odoc.drawpage.forms.getByIndex(0).removeByName("Schaltfläche 3")
        odoc.drawpage.forms.getByIndex(0).removeByName("Schaltfläche 4")
        odoc.drawpage.forms.getByIndex(0).removeByName("Schaltfläche 5")
        odoc.drawpage.forms.getByIndex(0).removeByName("Schaltfläche 6")
        odoc.drawpage.forms.getByIndex(0).removeByName("Schaltfläche 7")
'        odoc.drawpage.forms.getByIndex(0).removeByName("Numerisches Feld 1")

' alle Bilder einbinden    durch Aufruf des folgenden Tools
          embedImagesOfThisDocument

' Datei noch einmal mit Bildern speichern
        odoc.store()

' den Dateinamen und Pfad zusammen setzen und Export als .info Text-Datei
        datei= "H:\WEB-load\- neu\" & releaseDate & " -- " & myText02 & "\" & myText02 & ".info" ' setzt den Pfad zusammen
        dateiurl=ConvertToUrl(datei) ' wandelt den Pfad in URL form und schreibt ihn in die Variable "dateiurl"
        odoc.storetourl(dateiurl,myFileProptxt())

' den Dateinamen und Pfad zusammen setzen und Export als PDF Datei
        datei= "H:\WEB-load\- neu\" & releaseDate & " -- " & myText02 & "\" & myText02 & ".pdf" ' setzt den Pfad zusammen
        dateiurl=ConvertToUrl(datei) ' wandelt den Pfad in URL form und schreibt ihn in die Variable "dateiurl"
        odoc.storetourl(dateiurl,myFileProp_pdf())

' Datei schließen
        odoc.close(true)
der Versuch vor dem Speichern der PDF Datei einen neuen Bildaufbau zu erzwingen mit diesem Code

Code: Alles auswählen

dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(ThisComponent.CurrentController, ".uno:UpdateAll", "", 0, Array())
'thisComponent.unlockControllers()
hat nichts bewirkt

Nach oben