On Thu, 13 Nov 2008 01:32:28 -0600, Raul Huerta Navarro <[EMAIL PROTECTED]> wrote:

Hola

Estoy creando una macro que entre otras cosas quiero que genere un documento guardado como sólo lectura. Es decir, que automatice el proceso de ir al menú de Herramientas -> Opciones -> Seguridad de OpenOffice.org y active la casilla "Recomendar abrir el documento como sólo lectura".

Estoy un pelín atascado, he probado a grabar la macro para que generara el codigo pero no funciona, y he buscado por internet pero no he encontrado nada acerca de este tema.

Este par de macros te pueden ayudar de referencia para hacer lo que quieres hacer el primero es una macro completa que se encarga de abrir diferentes documentos consecutivamente, la segunda es simplemente abrir un documento de una plantilla existente. La primera la inclui por que ejemplifica el uso de las propiedades de ReadOnly y su valor como True. Espero que te sirva:

Listing 5.17: Load a document into an existing frame.
Sub open_new_doc
  Dim mArgs(2) as New com.sun.star.beans.PropertyValue
  Dim oDoc
  Dim oFrame
  Dim s As String

  If (ThisComponent.isModified) Then
    If (ThisComponent.hasLocation AND (Not ThisComponent.isReadOnly)) Then
      ThisComponent.store()
    Else
      ThisComponent.setModified(False)
    End If
  End If

  mArgs(0).Name = "ReadOnly"
  mArgs(0).Value = True

  mArgs(1).Name = "MacroExecutionMode"
  mArgs(1).Value = 4

  mArgs(2).Name = "AsTemplate"
  mArgs(2).Value = FALSE

  REM Choose the next document to load
  If ThisComponent.hasLocation Then
    s = ThisComponent.getURL()
    If InStr(s, "one") <> 0 Then
      s = "file:///C:/tmp/two.oxt"
    ElseIf InStr(s, "two") <> 0 Then
      s = "file:///C:/tmp/three.oxt"
    Else
      s = "file:///C:/tmp/one.oxt"
    End If
  Else
      s = "file:///C:/tmp/one.oxt"
  End If

  REM Get the document's frame and then load the specified document
  REM into the current frame!
  oFrame = ThisComponent.getCurrentController().getFrame()
  oDoc = oFrame.LoadComponentFromUrl(s, "", 2, mArgs())

  If IsNull(oDoc) OR IsEmpty(oDoc) Then
    Print "Unable to load " & s
  End If
End Sub

########################### Abrir documento desde Plantilla

Listing 5.18: Create a new document from a template.
Sub NewDoc
  Dim oDoc
  Dim sPath$
  Dim a(0) As New com.sun.star.beans.PropertyValue
  a(0).Name = "AsTemplate"
  a(0).Value = true

  sPath$ = "file://~/Documents/DocTemplate.stw"
  oDoc = StarDesktop.LoadComponentFromUrl(sPath$, "_blank" , 0, a())
End Sub

--
Alexandro Colorado
CoLeader of OpenOffice.org ES
http://es.openoffice.org

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Responder a