[RESUELTO] Cerrar formulario guardando sin preguntar

Discute sobre las herramientas de la base de datos
Responder
jopicach
Mensajes: 143
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

[RESUELTO] Cerrar formulario guardando sin preguntar

Mensaje por jopicach »

Hola,

Estoy intentando a través de un botón cerrar un formulario y que lo haga guardando primero los datos modificados de formulario y subformularios, pero sin preguntar si quiero guardar, que los guarde directamente.

He encontrado en el foro estas opciones de RMG

con macro = ThisComponent.CurrentController.Frame.Close( True )
sin macro = En la propiedad del botón "Acción", seleccionar "Abrir documento/ página web", y en la propiedad "URL" poner, .uno:CloseDoc

En la opción con macro no me guarda los datos, con la opción sin macro (que esta muy bien) si, pero me pregunta si quiero guardar.

Gracias.
Última edición por jopicach el Dom Mar 12, 2017 8:55 pm, editado 1 vez en total.
LibreOffice versión: 7.0.5.2 (x64) - Windows 10 Pro 64 bits
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Cerrar formulario con subformularios guardando sin pregu

Mensaje por RMG »

Hola,

Una posible solución es decirle que antes de cerrar que te guarde el registro modificado.

Código: Seleccionar todo

Sub GuardarRegistro( Evento )
Dim oForm As Object
	oForm = Evento.Source.Model.Parent
	If oForm.IsModified Then
		If oForm.IsNew Then oForm.InsertRow Else oForm.UpdateRow
	End If
End sub
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
jopicach
Mensajes: 143
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Cerrar formulario con subformularios guardando sin pregu

Mensaje por jopicach »

Hola,

He probado tu solución añadiendo la línea para que cierre el formulario, el resultado que me da es que si modifico algo, al salir tengo que pulsar dos veces el botón y sale guardando datos, pero si no modifico nada, no sale del formulario.

Sub GuardarRegistro( Evento )
Dim oForm As Object
oForm = Evento.Source.Model.Parent
If oForm.IsModified Then
If oForm.IsNew Then oForm.InsertRow Else oForm.UpdateRow
ThisComponent.CurrentController.Frame.Close(true)
End If
End sub

Gracias.
LibreOffice versión: 7.0.5.2 (x64) - Windows 10 Pro 64 bits
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Cerrar formulario con subformularios guardando sin pregu

Mensaje por RMG »

Hola,

La linea que has añadido, debe ir al final, después del End If.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
jopicach
Mensajes: 143
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Cerrar formulario con subformularios guardando sin pregu

Mensaje por jopicach »

Hola,

Esa opción la había probado también. Se cierra el formulario pero sin guardar los cambios.

Saludos
LibreOffice versión: 7.0.5.2 (x64) - Windows 10 Pro 64 bits
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Cerrar formulario con subformularios guardando sin pregu

Mensaje por RMG »

Hola,

Puedes adjuntar un pequeño ejemplo?.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
jopicach
Mensajes: 143
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Cerrar formulario con subformularios guardando sin pregu

Mensaje por jopicach »

Hola,

Adjunto el archivo. Al cerrar con el botón no guarda cambios.

Saludos
Adjuntos
Prueba.zip
(10.74 KiB) Descargado 187 veces
LibreOffice versión: 7.0.5.2 (x64) - Windows 10 Pro 64 bits
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Cerrar formulario con subformularios guardando sin pregu

Mensaje por RMG »

Hola,

Dos posibles soluciones.

La macro mencionada puesta en el evento al perder el foco de los controles a modificar y cerrar con .uno:CloseDoc.

El botón que haga dos acciones, salva primero el registro con .uno:RecSave y ejecuta una macro solo para cerrar el formulario.

Mira el adjunto.
Adjuntos
Prueba1.zip
(12.89 KiB) Descargado 327 veces
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
jopicach
Mensajes: 143
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Cerrar formulario con subformularios guardando sin pregu

Mensaje por jopicach »

Hola,

Creo que la segunda opción es la que mejor se va a adaptar, muy buena solución, funciona perfecto. Y Muchas gracias por la rapidez.

Un saludo.
LibreOffice versión: 7.0.5.2 (x64) - Windows 10 Pro 64 bits
Responder