Página 1 de 1

[RESUELTO] AVISO ASOCIADO A UN BOTÓN

Publicado: Mar Dic 28, 2021 5:50 pm
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.

Re: AVISO ASOCIADO A UN BOTÓN

Publicado: Mar Dic 28, 2021 7:31 pm
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.

Re: AVISO ASOCIADO A UN BOTÓN

Publicado: Mar Dic 28, 2021 7:48 pm
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

Re: AVISO ASOCIADO A UN BOTÓN

Publicado: Mié Dic 29, 2021 9:59 pm
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

Re: AVISO ASOCIADO A UN BOTÓN

Publicado: Jue Dic 30, 2021 12:35 pm
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.

Re: AVISO ASOCIADO A UN BOTÓN

Publicado: Vie Dic 31, 2021 9:30 pm
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.