[RESUELTO] AVISO ASOCIADO A UN BOTÓN

Discute sobre las herramientas de la base de datos
Responder
James07
Mensajes: 78
Registrado: Sab Jul 04, 2020 12:15 pm

[RESUELTO] AVISO ASOCIADO A UN BOTÓN

Mensaje por James07 »

Hola, quisiera poner un mensaje que se visualizara una vez se acciona un botón ( todo ello para advertir de una serie de pautas que hay que seguir) y que al darle a aceptar al mensaje del aviso se ejecutara la macro de ese botón para generar el informe definitivamente. Estoy pensando en un botón que ejecuta un informe como este código

Sub ImprimirInforme( Evento )
Dim oReporte As Object
Dim oConsulta As Object
Dim oCampoID As Object
Dim oForm As Object

'El formulario activo
oForm = Evento.Source.Model.Parent
'El campo con el Id
oCampoID = oForm.GetByName("Campoformateado")
'Debe ser mayor a cero
If oCampoID.BoundField.Int > 0 Then
'La consulta en la que se basa el reporte
oConsulta = ThisDatabaseDocument.DataSource.QueryDefinitions.getByName ("ConsultaSelectiva")
'Modificamos la consulta de modo que tome le registro actual
oConsulta.Command = "SELECT ""ID"",""NOMBRE"",""DOMICILIO"",""FECHA"",""TELEFONO"" FROM ""BASEDEDATOS"" WHERE ""ID"" = " & oCampoID.BoundField.Int
'El informe a mostrar
oReporte = ThisDatabaseDocument.ReportDocuments.getByName ("INFORME")
'Mostramos el reporte
oReporte.Open

End If
End Sub

Gracias por vuestra ayuda.
Un saludo.
Última edición por James07 el Vie Dic 31, 2021 9:31 pm, editado 2 veces en total.
Libre Office 6.4 en Windows 10
Neftali R
Mensajes: 169
Registrado: Mar Jun 15, 2021 12:48 pm
Ubicación: Venezuela

Re: AVISO ASOCIADO A UN BOTÓN

Mensaje por Neftali R »

Eso no es nada difícil, te recomiendo revisar el libro de Mauricio, en el capítulo "4.2 Instrucciones y funciones en OOo Basic" Mauricio explica las diferentes opciones del comando MsgBox.
https://forum.openoffice.org/es/forum/v ... =50&t=1545

Si el comando MsgBox no es lo que estás buscando, sé más específico sobre lo que quieres que haga el mensaje y cómo debería verse.
LibreOffice 7.2.6.2 | Windows 7 Ultimate
Neftali R
Mensajes: 169
Registrado: Mar Jun 15, 2021 12:48 pm
Ubicación: Venezuela

Re: AVISO ASOCIADO A UN BOTÓN

Mensaje por Neftali R »

Sí no tienes el libro o el link no sirve (que la verdad no sé), vale la pena recordad que SLV-es volcó el libro de Maurico en la Wiki en español en 2013, aquí está el link para el articulo que habla justo de eso.
https://wiki.openoffice.org/wiki/ES/Man ... sFunciones
LibreOffice 7.2.6.2 | Windows 7 Ultimate
James07
Mensajes: 78
Registrado: Sab Jul 04, 2020 12:15 pm

Re: AVISO ASOCIADO A UN BOTÓN

Mensaje por James07 »

Gracias Neftali R por tu respuesta. Efectivamente, he revisado algo del tema MsgBox y comprendo la mecánica pero no logro hacer que avise por un lado (msgBox) y que una vez dado al botón de aceptar ejecute la macro que dejé anotada arriba. En otras palabras, la macro que puse "ImprimirInforme" debería ejecutarse cuando se diera a aceptar del Msgbox.
Espero haberlo explicado suficientemente.
Un saludo
Libre Office 6.4 en Windows 10
Neftali R
Mensajes: 169
Registrado: Mar Jun 15, 2021 12:48 pm
Ubicación: Venezuela

Re: AVISO ASOCIADO A UN BOTÓN

Mensaje por Neftali R »

Código: Seleccionar todo

Sub ImprimirInforme( Evento )
Dim oReporte As Object
Dim oConsulta As Object
Dim oCampoID As Object
Dim oForm As Object
Dim continuar As Integer

continuar = MsgBox ("texto", 64+1,"título de aviso")
	If continuar = 1 Then
	'El formulario activo
	oForm = Evento.Source.Model.Parent
	'El campo con el Id
	oCampoID = oForm.GetByName("Campoformateado")
	'Debe ser mayor a cero
		If oCampoID.BoundField.Int > 0 Then
		'La consulta en la que se basa el reporte
		oConsulta = ThisDatabaseDocument.DataSource.QueryDefinitions.getByName ("ConsultaSelectiva")
		'Modificamos la consulta de modo que tome le registro actual
		oConsulta.Command = "SELECT ""ID"",""NOMBRE"",""DOMICILIO"",""FECHA"",""TELEFONO"" FROM ""BASEDEDATOS"" WHERE ""ID"" = " & oCampoID.BoundField.Int
		'El informe a mostrar
		oReporte = ThisDatabaseDocument.ReportDocuments.getByName ("INFORME")
		'Mostramos el reporte
		oReporte.Open
		End If
	End If

End Sub
Con eso debería estár, si apreta el botón "Aceptar" la variable 'continuar' sería el número 1 y se ejecuta el código, si el usuario apreta "cancelar" la variable 'continuar' sería 2 y no se ejecutaría el código.
LibreOffice 7.2.6.2 | Windows 7 Ultimate
James07
Mensajes: 78
Registrado: Sab Jul 04, 2020 12:15 pm

Re: AVISO ASOCIADO A UN BOTÓN

Mensaje por James07 »

Gracias Neftali R. Impecable código. Funciona correctamente y has añadido un IF que me faltaba y por eso me daba error en las pruebas que yo hacía con mi código.
Gracias nuevamente!. Un saludo.
Libre Office 6.4 en Windows 10
Responder