Hola a todos: Tengo casi terminada una aplicación por encargo. Uno de los puntos es mostrar dos opciones para imprimir, una desde Excel y otra desde Calc. Desde código relleno una hoja de Calc con los datos para formar una factura y la imprimo sin problemas pero, siempre hay un pero, al haber cambiado el contenido de la hoja muestra el dialogo de Guardar. El problema esta que si el usuario guarda machacara la plantilla, por tanto quiero capturar el dialogo Guardar e impedir que se muestre o encontrar una forma de cerrar a saco pero sin que luego se active el recuperar documento.
El codigo que utilizo es el siguiente:
myDoc.print(dummyArray()) 'imprimo
OOoIntrospection = Nothing
OOoDisp = Nothing
StarDesktop = Nothing
OpenOffice = Nothing
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect()
GC.WaitForPendingFinalizers()
Dim ooo As Object, dtp As Object
ooo = CreateObject("com.sun.star.ServiceManager")
dtp = ooo.createInstance("com.sun.star.frame.Desktop")
dtp.terminate()
dtp = Nothing
ooo = Nothing
Aqui muestra el dialogo. He probado matar el proceso con el siguiente codigo pero entonces muestra el dialogo de recuperar documento.
Dim prog As String = "soffice.bin"
Dim procesos() As Process = Process.GetProcessesByName(prog)
procesos(0).CloseMainWindow()
If procesos(0).HasExited = False Then
procesos(0).Kill()
procesos(0).Close()
End If
Si alguien conoce otro modo le agradecera la ayuda.
Saludos.
Gestionar con VB2008 el dialogo Guardar
Gestionar con VB2008 el dialogo Guardar
Francisco
Windows XP
OpenOffice ver. 3.1
Windows XP
OpenOffice ver. 3.1
Re: Gestionar con VB2008 el dialogo Guardar
myDoc tiene un método setModified. En OpenOffice Basic el código
evita que se muestra el dialogo de Guardar al cerrar el documento.
Código: Seleccionar todo
myDoc.setModified(False)
Re: Gestionar con VB2008 el dialogo Guardar
Muchas gracias por tu respuesta FJCC-ES.
El metodo es realmente efectivo, pero el problema subsiste ya que el usuario puede utilizar la opcion de Guardar como y macharcar la plantilla.
He encontrado esta otra opcion:
myDoc.print(dummyArray())
Dim Direc As String = "file:///C:/Factura" & NumeroFacturas & ".ods"
myDoc.storeToURL(Direc, dummyArray())
myDoc.Close(True)
myDoc = Nothing
MsgBox("Factura creada y guardada en C:\Factura" & NumeroFacturas, MsgBoxStyle.Information, "Informacion del Sistema")
Asi primero imprimo la hoja, luego la guardo con otro nombre y por ultimo cierro la hoja. Lo malo que tiene este sistema es que siempre guardo la hoja y para el usuario puede ser pesado.
Por ahora me parece el mejor de los malos remedios. Si te se ocurre otra idea te agradecera que me lo comentes.
Saludos.
El metodo es realmente efectivo, pero el problema subsiste ya que el usuario puede utilizar la opcion de Guardar como y macharcar la plantilla.
He encontrado esta otra opcion:
myDoc.print(dummyArray())
Dim Direc As String = "file:///C:/Factura" & NumeroFacturas & ".ods"
myDoc.storeToURL(Direc, dummyArray())
myDoc.Close(True)
myDoc = Nothing
MsgBox("Factura creada y guardada en C:\Factura" & NumeroFacturas, MsgBoxStyle.Information, "Informacion del Sistema")
Asi primero imprimo la hoja, luego la guardo con otro nombre y por ultimo cierro la hoja. Lo malo que tiene este sistema es que siempre guardo la hoja y para el usuario puede ser pesado.
Por ahora me parece el mejor de los malos remedios. Si te se ocurre otra idea te agradecera que me lo comentes.
Saludos.
Francisco
Windows XP
OpenOffice ver. 3.1
Windows XP
OpenOffice ver. 3.1