Mostrar y ocultar componentes en formulario

Discute sobre las herramientas de la base de datos
Responder
Avatar de Usuario
gumerman01
Mensajes: 1
Registrado: Dom Nov 01, 2009 9:01 pm

Mostrar y ocultar componentes en formulario

Mensaje por gumerman01 »

Hola,

Estoy empezando a usar OpenOffice de una forma más activa y me he encontrado algunos problemas al empezar con las macros.

Estoy intentando crearun formulario para una base de datos en Base. La tabla de donde estoy tomando los datos tiene muchos campos y no es posible verlos todos a la vez en pantalla. Como según tengo entendido no existen las pestañas estoy tratando de usar unos botones para esconder y mostrar campos alternativamente.

Estuve viendo diferentes foros la manera de ocultar y mostrar componentes y me daban la siguiente forma para conseguirlo:

oForm=ThisComponent.Drawpage.Forms.getByName("Form_name")
ThisComponent.CurrentController.getControl(oForm.getByName("control_name")).setVisible(true)


Sin embargo, cuando intento correr la macro con ese código me dice que la propiedad o el método no fue encontrado.

Descargué la herramienta XRay e hice algunas pruebas y lo que he encontrado es que no existe ni la propiedad drawpage ni el evento getdrawpage() después del ThisComponent o del ThisComponent.CurrentController:

xray Thiscomponent

No tengo ni idea de a qué pueda deberse. ¿Podría alguien echarme un cable?

Muchas Gracias.
OpenOffice 3,1 en Windows Vista
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Mostrar y ocultar componentes en formulario

Mensaje por mauricio »

Hola...

La razón de que no encuentre la propiedad es la línea

Código: Seleccionar todo

ThisComponent.CurrentController.getControl(oForm.getByName("control_name")).setVisible(true)
Debería ser:

Código: Seleccionar todo

oControl = oForm.getByName("control_name")
oControlVista = ThisComponent.getCurrentController.getControl(oControl)
oControlVista.setVisible( False )
Pero hay otras varias consideraciones que debes de tener, el acceso al "modelo" o a la "vista" del control para el correcto manejo de métodos y propiedades, los eventos correctos para asociar las macros correctas, entre otros temas importantes. En mi libro, si bien esta enfocado a Calc, la sección de formularios te puede ilustrar un poco al respecto de estos temas, pues su manejo desde Base es muy similar.

http://user.services.openoffice.org/es/ ... =50&t=1545

Para tu pregunta especifica de mostrar y ocultar campos, te anexo un ejemplo de como hacerlo, toma en cuenta que en un formulario lo que estamos mostrando y ocultando son los "controles", no los campos, como veo que no eres novato, creo que con el ejemplo resolverás tu duda.

Saludos

P.D. Por favor, si esto resuelve tu pregunta, edita el título de tu primer mensaje para agregarle [RESUELTO], de este modo tenemos foros más ordenados.
Adjuntos
Formulario.odb.zip
Ejemplo de ocultar y mostrar controles en un formulario de Base
(10.23 KiB) Descargado 447 veces
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder