[RESUELTO] boton que habra otro formulario

Discute sobre las herramientas de la base de datos
Responder
dipoagus
Mensajes: 17
Registrado: Jue Nov 14, 2019 10:17 am

[RESUELTO] boton que habra otro formulario

Mensaje por dipoagus »

¿Hay alguna manera rapida y facil de hacer que un boton de un formulario habra otro formulario de la base de datos?

gracias
Última edición por dipoagus el Mar Nov 19, 2019 1:19 pm, editado 2 veces en total.
OpenOffice 4.1.7
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: boton que habra otro formulario

Mensaje por mauricio »

creo recordar que tu pregunta ya se ha respondido. ¿Ya hiciste una búsqueda?
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
dipoagus
Mensajes: 17
Registrado: Jue Nov 14, 2019 10:17 am

Re: boton que habra otro formulario

Mensaje por dipoagus »

Esto encontré:

Esta macro en un módulo de la biblioteca Standard te permitirá abrir un formulario para entrar datos, pasando como parámetro el nombre del formulario:

CÓDIGO: SELECCIONAR TODO EXPANDIR VISTA
'Apertura de formularios por nombre
Sub sAbreF(NombreF As String)
'NombreF=Nombre del formulario en la base de datos
Dim oControl As Object
'Conecta con la base de datos
oControl=ThisDatabaseDocument.CurrentController()
If Not oControl.IsConnected() Then oControl.Connect()
'Abre el formulario
oControl.LoadComponent(com.sun.star.sdb.application.DatabaseObject.FORM,NombreF,False)
End Sub
'Apertura de formularios por nombre

Lo más cómodo es, entonces, asignar esta otra macro a cada botón que abra un formulario y definir el Tag del botón (Propiedades del control, pestaña General: Información adicional) como el nombre del formulario que abre:

CÓDIGO: SELECCIONAR TODO EXPANDIR VISTA
'Abre un formulario al pulsar el botón
Sub sBotonAbreF(Event As Object)
sAbreF(Event.Source.Model.Tag)
End Sub
'Abre un formulario al pulsar el botón


Inserto la primera macro en la biblioteca pero la otra macro donde va? como le paso el nombre de formulario? Creo q algo no entendi
OpenOffice 4.1.7
RMG
Mensajes: 3884
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: boton que habra otro formulario

Mensaje por RMG »

Hola,

En la biblioteca Standard, creas un modulo y copias esta macro.

Código: Seleccionar todo

Sub AbreCualquierFormulario(Evento)
	ThisDatabaseDocument.FormDocuments.GetByName(Evento.Source.Model.Tag).Open	
End Sub
En las propiedades del botón (al final) existe una propiedad llamada información adicional (tag), ahí es donde debes poner el nombre del formulario que quieres abrir.
La macro se la puedes asignar al acontecimiento (evento) del botón del ratón pulsado.

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)
dipoagus
Mensajes: 17
Registrado: Jue Nov 14, 2019 10:17 am

Re: boton que habra otro formulario

Mensaje por dipoagus »

JOLINES, que facil me lo has puesto, GRAAACIASSSS!!!
OpenOffice 4.1.7
RMG
Mensajes: 3884
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: boton que habra otro formulario

Mensaje por RMG »

Hola,

Recuerda marcar como resuelto, nos ayuda a mantener un foro más ordenado.

https://forum.openoffice.org/es/forum/v ... f=3&t=2668

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)
Longi
Mensajes: 810
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: [RESUELTO] boton que habra otro formulario

Mensaje por Longi »

Buenas!

Ya sé que está resuelto, pero quería decir que el código de RMG está fantástico cuando usas un botón para una sola acción, pero no tanto si quieres que abra un formulario u otro, en función de lo que hay en un textbox o en un Listbox.
Por ejemplo, 5 posibilidades distintas en el ListBox, daría lugar a 5 formularios distintos, con lo que tendrías que usar 5 botones diferentes.
Con este código en el evento 'Botón de ratón pulsado' te permitiría aplicar claúsulas 'if' según el texto del listBox, abriendo uno u otro con un solo botón:

Código: Seleccionar todo

    ocontroller = Thisdatabasedocument.currentController                                    ' Controlador de la base de datos
    if not ocontroller.isconnected then ocontroller.connect                                 ' Mantenemos la conexión
    oDoc = Thisdatabasedocument.formdocuments.getbyname("MiFormulario").open                      ' Abrimos el formulario
Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Responder