Página 1 de 1

Mostrar y ocultar componentes en formulario

Publicado: Dom Nov 01, 2009 9:14 pm
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.

Re: Mostrar y ocultar componentes en formulario

Publicado: Lun Nov 02, 2009 3:59 am
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.