Gestionar con VB2008 el dialogo Guardar

Discute sobre la aplicación de hojas de cálculo
Responder
branya
Mensajes: 3
Registrado: Sab Sep 12, 2009 5:37 pm

Gestionar con VB2008 el dialogo Guardar

Mensaje por branya »

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.
Francisco
Windows XP
OpenOffice ver. 3.1
FJCC-ES
Mensajes: 873
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Gestionar con VB2008 el dialogo Guardar

Mensaje por FJCC-ES »

myDoc tiene un método setModified. En OpenOffice Basic el código

Código: Seleccionar todo

myDoc.setModified(False)
evita que se muestra el dialogo de Guardar al cerrar el documento.
branya
Mensajes: 3
Registrado: Sab Sep 12, 2009 5:37 pm

Re: Gestionar con VB2008 el dialogo Guardar

Mensaje por branya »

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.
Francisco
Windows XP
OpenOffice ver. 3.1
Responder