von opiWahn » Mo, 28.11.2011 11:36
Hallo,
bei Abspeichern eines Writerformulars muß ich die Unterscheidung treffen wer es gerade geöffnet hat und mit entsprechenden Hinweisen das Speichern verbieten bis alle "Fehlerquellen" beseitigt wurden.
Prinzipiell funktioniert das alles auch bis zu dem Punkt an dem die Datei, die dann einen neuen Namen trägt, erneut geöffnet, bearbeitet und dann gespeichert werden soll. Das Makro erkennt, daß die Datei existiert, verweigt dann aber das Überschreiben mit einem Exception
Type: com.sun.star.task.ErrorCodeIOException
Message:. ???
Die Datei heißt für A immer "Auftrag_....odt", gespeichert wird sie dann nach Prüfung mit einer 4 stelligen Nummer. B öffnet die Datei mit dieser jeweiligen Nummer und soll sie unter der gleichen Nummer speichern bzw. die vorhandene überschreiben. ???
Code: Alles auswählen
Sub Save_as_ODT
Dim Speichern
Dim pages
pages=thiscomponent.CurrentController.PageCount
if thisComponent.title = "Auftrag_Form1.odt" then
proofAllOptGrp1
else
proofAllOptGrp2
end if
if iError > 0 then
MsgBox "Sie haben noch "& iError &" Fehler zu beheben", 0+48, "Achtung"
elseif thisComponent.title <> "Auftrag_Form1.odt" and pages < 2 then
MsgBox "Sie müßen noch min. 1 Prüfprotokoll anfügen", 0+48, "Achtung"
exit Sub
else
oform = thisComponent.drawpage.forms.getbyindex(0)
aText = oForm.getByName("txt_oName")
aNum = oForm.getByName("txt_oKey")
if aText.text = "" then
datname = "leer"
else
datname = aNum.text
end if
path = "C:/Roiger/Auftraege/"
extension = ".odt"
odturl = "file:///" + path + datname + extension
if FileExists (odturl) then
Speichern = MsgBox ("Eine Datei mit dem Namen" & CHR$(10) & odturl & CHR$(10) & "existiert bereits!" _
& CHR$(10) & "Soll sie überschrieben werden?",4+48, "Achtung")
if Speichern = 7 then
msgbox "Datei wurde nicht gespeichert", 0, "Information"
exit sub
end if
end if
thisComponent.storeToURL(odturl, Array())
msgbox "Datei wurde gespeichert", 0, "Information"
endif
End Sub
Hallo,
bei Abspeichern eines Writerformulars muß ich die Unterscheidung treffen wer es gerade geöffnet hat und mit entsprechenden Hinweisen das Speichern verbieten bis alle "Fehlerquellen" beseitigt wurden.
Prinzipiell funktioniert das alles auch bis zu dem Punkt an dem die Datei, die dann einen neuen Namen trägt, erneut geöffnet, bearbeitet und dann gespeichert werden soll. Das Makro erkennt, daß die Datei existiert, verweigt dann aber das Überschreiben mit einem Exception
Type: com.sun.star.task.ErrorCodeIOException
Message:. ???
Die Datei heißt für A immer "Auftrag_....odt", gespeichert wird sie dann nach Prüfung mit einer 4 stelligen Nummer. B öffnet die Datei mit dieser jeweiligen Nummer und soll sie unter der gleichen Nummer speichern bzw. die vorhandene überschreiben. ???
[code]
Sub Save_as_ODT
Dim Speichern
Dim pages
pages=thiscomponent.CurrentController.PageCount
if thisComponent.title = "Auftrag_Form1.odt" then
proofAllOptGrp1
else
proofAllOptGrp2
end if
if iError > 0 then
MsgBox "Sie haben noch "& iError &" Fehler zu beheben", 0+48, "Achtung"
elseif thisComponent.title <> "Auftrag_Form1.odt" and pages < 2 then
MsgBox "Sie müßen noch min. 1 Prüfprotokoll anfügen", 0+48, "Achtung"
exit Sub
else
oform = thisComponent.drawpage.forms.getbyindex(0)
aText = oForm.getByName("txt_oName")
aNum = oForm.getByName("txt_oKey")
if aText.text = "" then
datname = "leer"
else
datname = aNum.text
end if
path = "C:/Roiger/Auftraege/"
extension = ".odt"
odturl = "file:///" + path + datname + extension
if FileExists (odturl) then
Speichern = MsgBox ("Eine Datei mit dem Namen" & CHR$(10) & odturl & CHR$(10) & "existiert bereits!" _
& CHR$(10) & "Soll sie überschrieben werden?",4+48, "Achtung")
if Speichern = 7 then
msgbox "Datei wurde nicht gespeichert", 0, "Information"
exit sub
end if
end if
thisComponent.storeToURL(odturl, Array())
msgbox "Datei wurde gespeichert", 0, "Information"
endif
End Sub
[/code]