visibilidad columnas rejilla


([N3] blavan) #1

Después de tantos años… resulta que a una columna le pongo condición visible dependiendo del valor de un campo de su maestro
Ejecuto, voy al formulario, entro en la pestaña subformulario en cuestión y la rejilla no hace caso a la condición de visibilidad
Pincho en la pestaña de al lado, vuelvo a la pestaña en cuestión y la condición de visibilidad funciona.
Estoy en v18

Llevo toda la mañana dandole vueltas y…

Que hago mal?

Gracias


([N1] vlinares) #2

Buenas tardes…

Yo estoy con la V7.17.1 y me pasa lo mismo.

Me paso lo mismo y no he encontrado solución.

Saludos
Vicente


([N3] blavan) #3

Lo solucione con una variable global que cargo al inicio del formulario y así funciona, pero debe ser un bug ¿no?


([N4] ccuesta) #4

La semana pasada tuve el mismo problema.

El problema es que el ocultado de columnas se avalúa al inicio, antes de cargar los datos. En mi caso lo solucioné poniendo un mensaje indicando que había terminado la carga con 1 seg. de duración. Entonces sí que refresca la rejilla al volver el foco al formulario y aplicando las fórmulas para ocultar columnas.

Hubiera sido un más elegante disponer de un método tipo “rejilla.refresh”, pero ni “procesar” ni “recalcular” tienen el mismo efecto


([N4] gontorre) #5

A mi me pasa lo mismo. Tengo que pinchar en la rejilla para que se muestren determinadas columnas.

Un saludo


([N1] wikan) #6

Es muy posible que al ser un maestro y debido a la carga optimizada en las rejillas no recibas el dato en el momento del pintado de la rejilla.

Quizás lo mejor, en lugar de usar una variable global, y para quitarnos esa práctica, sea usar una variable local de la rejilla que sea la condicione la visibilidad. Lo puede usar igual, pero usar el comando de interfaz, set variable vista de datos


([N3] pacosatu) #7

Hola.

Yo creo que se está planteado el problema de forma equivocada.

Es lógico que la Visibilidad de las columnas se determine antes de cargar los datos, de lo contrario la Rejilla tendría que esperar a que se traigan todos los datos (algo dificil porque se hace de forma asíncrona) y además ¿a qué fila de la tabla hace caso la condición de Ocultar/Mostrar?

Por lo tanto, en este caso concreto, tendremos que conocer previamente el ID del maestro que va a condicionar la visibilidad de determinada columna.

Si posteriormente, el ID del maestro cambia, solo tenemos que Procesar la lista y pasar el Foco a la Rejilla y ésta se refresca correctamente.

En resumen, en la condición de Visible de la columna no puede ir un campo de la misma Tabla, pues se estaría evaluando por cada fila, o eso creo.

Saludos
Paco Satué


([N2] ramiro) #8

Buenas tardes:

De acuerdo con Paco, obvio.

Añado que la visibilidad de las columnas en rejillas funciona de forma un tanto rara.
Para muestra basta un botón: si se le pone como condición un cero (ver imagen) la columna no se oculta. Probadlo…

Saludos. Ramiro



([N3] blavan) #9

Hola, Paco después de tanto tiempo aún sigo coleando, hubo una época que nos carteabamos mucho con tus rutinas JS
La condición de visibilidad de una columna, tira de un campo de la ficha del maestro, no de un campo de la tabla de la reiilla, es decir lo tengo bien planteado pero el evento show no funciona la primera vez, después si, es lo mismo que comentan el resto de participantes en este hilo.

Un abrazo