¿Alguien sabe presentar / ocultar pestañas en separador de forma dinámica?


([N2] ramiro) #1

Buenas:

 

Esperaba esta versión como agua de mayo... Creía que con los nuevos comandos de interfaz podría, por fin, ocultar o presentar pestañas de un separador de subformularios dependiendo de valores contenidos en otras pestañas del separador.

 

Pero el caso es que no lo consigo. He probado todo lo que se me ha ocurrido. Voy a resumir los pasos que he seguido:

 

1.Asumo que se tiene que hacer con eventos.

 

2.El separador no admite eventos por lo que tal evento estará o en el form. principal o en los subf. del pestañador.

 

3.Los comandos de interfaz de un formulario inscrito en un separador no pueden ver controles del formulario principal ni otras pestañas del mismo separador. Por eso no puedo usar el comando "Interfaz-Ocultar objeto" (el objeto a ocultar no es visible). El evento que intenta ocultar pestañas ha de pertenecer, por tanto, al formulario principal porque de esa forma si se puede acceder a los subcontroles.

 

4.Puesto que tengo que disparar un evento del formulario principal desde una de las pestañas del separador (por ejemplo al perder el foco un edit), creo que la unica forma de hacerlo es ejecutando una acción que dispare una señal.

 

5.Si lo hago de esa forma, la acción se ejecuta, la señal se dispara, el evento la recoge y se ejecuta (el mensaje se presenta), PERO el separador hace caso omiso y las pestañas no cambian (ni se ocultan ni se desocultan)

 

Podría ser que el evento que intenta ocultar/presentar pestañas no sea correcto. Por eso lo muestro en la imagen... He probado activando y desactivando cada uno de los condicionales, pero no consigo que funcione...

 

¿Simplemente es que estoy bóvido o es que, simplemente, no se puede hacer lo que pretendo?

 

Saludos. Ramiro 

 

 

 

[attachment=13090,1157]

 

 

 

 

 

 

 

 

 

 


([N1] Pepeto) #2

Yo lo uso, pero no lo hago con el separador de formularios, lo hago direcamente con controles objeto y me da muy buen resultado.

Fijate en la primera foto de este articulo http://www.ascsl.com

Todos iconos de la parte superior estan dentro del mismo formulario, y cada uno oculta/visualiza un control objeto y funciona perfectamente

un saludo

Jose Luis

 


([N1] cristianvg2003) #3

creo que con los nuevos comandos del interfaz y la posibilidad de acceder a los subobjetos es mas que suficiente para hacer lo que quieres.

 

Saludos,


([N4] eic) #4

Hola, Ramiro.

Si no me equivoco, el problema está en que la opción "Visible" de los subobjetos del separador no se actualiza correctamente. En esa condición visible (en la que puedes poner una variable, por ejemplo, o cualquier otra condición) se evalúa cuando se abre el formulario, y no se vuelve a refrescar en ningún momento. 

Los comandos de interfaz que se añaden en esta versión te permiten, por ejemplo, refrescar un campo objeto que esté en una pestaña del separador, cosa que antes no se podía hacer, pero no ocultarlo, ya que eso se controla simplemente con la opción "Visible" de cada subobjeto que cuelga del separador, que no tiene la funcionalidad de refrescarse una vez abierto el formulario.

Este problema está reportado en vBugman (no recuerdo el número de incidencia), y creo que no está solucionada todavía (no tengo aquí acceso a vBugman, pero me leí esta mañana las incidencias resueltas y no me suena).

Saludos,

Fran Varona

 


([N2] ramiro) #5

Hola Fran:

 

Por lo que he probado funciona exactamente como comentas.

 

Hasta la versión 7.5 la visibilidad de las pestañas solo se podía gobernar con las condiciones de visibilidad y tales condiciones solo se evaluaban al iniciarse el formulario. No obstante, con esta versión las pestañas incrustadas en un separador ya son accesibles y se les puede aplicar el comando "Interfaz: Ocultar objeto ( Nombre_pestaña )" o "Interfaz: Mostrar objeto ( Nombre_pestaña )", pero parece que no obedecen.

 

Puesto que tanto al separador en su conjunto como a cada pestaña por separado también se les puede aplicar el comando "Interfaz: Recalcular control", pensé que con ello se forzaría el recálculo de las condiciones de visibilidad, pero tampoco funciona.

 

O existe alguna solución que no se me ha ocurrido, o en este tema seguimos como estábamos...

 

Saludos y muchas gracias. Ramiro


([N4] eic) #6

Hola, Ramiro.

Ayer no me fue posible, pero hoy probé a hacer lo que indicabas (Interfaz: ocultar objeto con el subobjeto de la pestaña del separador) y no funciona de ninguna manera, si siquiera desde un botón del formulario principal (luego ya vendría el tema de los eventos y conexiones de eventos, pero si esto no funciona no hay nada que hacer).

¡Era una buena idea lo de recalcular control! Sin embargo, antes esa instrucción sólo afectaba a controles objeto. El hecho de que ahora puedas "navegar" por el árbol de objetos no parece significar que se pueda aplicar a cualquier objeto, sino que ahora puedes encontrar controles objeto que están "más abajo", en separadores, etc. 

Le daré alguna vuelta más.

Saludos,

Fran Varona

 


([N4] eic) #7

Hola.

Consultado con Soporte: no se puede hacer con esta versión. "Interfaz: ocultar objeto" actúa sobre controles, pero no sobre los subobjetos del separador.

Saludos,

Fran Varona


([N2] ramiro) #8

Muchas gracias, Fran.

 

A veces me pregunto, rarezas que uno tiene, porqué en casos así Soporte no actúa de oficio.

 

Saludos. Ramiro