Sugerencias. Cuadrante Mensual


([N4] Ramon Denuc) #1

Hola Foro,

Tengo que hacer un pequeño cuadrante de horarios con sus respectivos turnos.

Hasta donde llego con la experiencia con Velneo, puedo montar una rejilla con una columna con los nombres de los empleados, y después 31 columnas más con los días del mes. Pero toda esta rejilla PENALIZA mucho en un entorno de “3 Plano”, sobre todo con el tema de los colores.

Es por esta razón que me gustaria, que me recomendarais para poder montar dicho Cuadrante mensual de Turnos.

Adjunto una imagen de como más o menos seria con una rejilla.

Saludos



([N3] pacosatu) #2

Hola Ramón.

No entiendo por qué penalizan las condiciones de estilo de la Rejilla en cloud.
Consúltalo a Soporte y nos cuentas, porque a este paso cuando vayamos a desarrollar aplicaciones en Cloud, solo vamos a poder usar una pequeña parte de las funcionalidades de Velneo.

Por esta y otras razones es necesario más que nunca que Velneo se ponga a trabajar en capacidades offline o clientes desconectados.

El cuadrante lo puedes desarrollar de 3 formas:

  • En el Visor HTML - Creando tú mismo el HTML del cuadrante y con javascript lo rellenas y gestionas. También puedes buscar una librería javascript que haga el trabajo, habrá muchas en Internet.
  • Usando QML - Pasa la Lista del cuadrante a un formulario QML para el interface y usas igualmente javascript para gestionarlo.
  • En Velneo nativo - Usas la Rejilla y para los colores define una tabla estática con iconos de color. Cada celda del cuadrante apunta al color correspondiente en la tabla estática. Esto en cloud no creo que ralentice, aunque nunca se sabe.

Saludos
Paco Satué


([N4] Ramon Denuc) #3

Paco, gracias por contestar.

Cuando digo que penaliza las condiciones de estilo de la Rejilla en cloud, lo digo por lo siguiente:

Hace un par de semanas hicimos unas pruebas en cloud de uno de los programas que tenemos, con solo unos 15000 registros, y nos encontramos que al seleccionar uno de estos registros el programa tardaba unos 18 segundos en cargar dicho registro, repase el programa que había sido inicialmente confeccionado para trabajar en Local, y lo prepare para trabajar en Cloud.

Sin duda alguna al hacer dicho cambio el programa mejoro, y paso de esos 18 segundos a solo 4, y estuve repasando más profundamente para intentar pasar esos 4 segundos, a por lo menos 1 …

… toqueteando cosas me encontré que quitando las condiciones de estilo de la Rejilla en cloud, la espera paso de esos 4 segundos a menos de un segundo, fue la hostia, habíamos conseguido rebajar esos 18 segundos a menos de uno.

Por eso digo que penalizan en Cloud las condiciones de estilo de la Rejilla en cloud.

Y si no es así, es que las debo de condicionar mal.

PD: De todo esto, llegue a la conclusión de que todos los programas que hacemos siempre tienen de ser pensados en Cloud, porque si funciona en Cloud, en local es todavía más rápido. Lección aprendida

Saludos


([N2] AyudaVelneo) #4

Hola Ramón:

Las condiciones de estilo no dejan de ser fórmulas… que se ejecutan en primer plano. De ahí que ralenticen el “pintado” de la rejilla.

Tened en cuenta que se tienen que ir evaluando las fórmulas por cada uno de los registros.

Una solución es asignar valores de colores a una tabla estática y mostrar el icono de esa tabla estática.

No es tan “visual” pero al menos no te penalizará.

Un saludo


([N2] ramiro) #5

Buenas tardes:

Las condiciones de color en las celdas penalizan, eso es seguro, pero…
… si las fórmulas para la condición son ligeras debería funcionar perfectamente en cloud.

Revisar qué estás usando en esas condiciones y cuáles de ellas se pueden simplificar.
Revisa las partes comunes que puedes resolver con antelación y pasar el resultado como una variable lógica a la rejilla.

Resuelve con antelación y simplifica
Si hay un color por defecto que se resuelva con otra condición, ponlo como fondo de la rejilla y quita esa condición.

Saludos. Ramiro


([N3] pacosatu) #6

Hola Ramón.

Ya sé que las condiciones de Estilo penalizan las Rejillas en Cloud. Mi pregunta es ¿por qué?, que alguien me lo explique.
Por eso te digo que lo preguntes a soporte para que nos den la explicación detallada.

Puede ser que las fórmulas de las condiciones de estilo siempre van a consultar al servidor en lugar de a la caché, en ese caso sería un fallo evidente en el diseño de la Rejilla.

Vuelvo a decir: si solo programamos pensando en el cloud ¿qué comandos nos quedarán disponibles?

Al final va a resultar que los interfaces realmente óptimos solo se van a poder hacer con el Visor HTML (pasando un JSON o XML con los datos offline) o con QML (que no tiene refrescos continuos contra el servidor).

Por supuesto que la Rejilla debe de funcionar plenamente tanto en local como en cloud. Si solo queremos mostrar datos que son una foto de un momento determinado de la tabla remota, deberá tener un mecanismo para desactivar los refrescos contra el servidor.

Pensad en el nuevo control TreeWidget ¿a que no tiene problemas de refresco y va como un tiro?

Es evidente que la Rejilla y otros controles no se diseñaron pensando en redes lentas o en los tiempos de respuesta del servidor remoto. Es claramente un diseño pensado para redes rápidas y nos dejan al programador el prueba y error hasta que damos con la tecla de la optimización sin tener procedimientos claros de cómo hacerlo.

Solo hay que fijarse en el mundo de los exploradores y las páginas web. Tenemos el DOM, el HTML y el javascript junto con mecanismos como AJAX, que permitieron hacer más óptima la experiencia web, pero siempre con control total de todos los eventos por parte del programador. Velneo abusa mucho de los automatismos, que en local son una maravilla, pero en cloud una pesadilla.
La solución pasaría por tener más control por parte del programador de esos automatismos.

Bueno, quizás soy un poco pesimista en este aspecto, pero me cuesta creer que no podamos colorear fácilmente una Rejilla con Velneo sin toparnos con el dichoso cloud.

Saludos
Paco Satué


([N4] Infortic) #7

+1


([N4] gontorre) #8

Hola a todos

Según mi experiencia no sólo penalizan las condiciones de estilo en rejillas. También he tenido problemas de retardo en formularios con muchos controles con condiciones de activo o visible. Podéis verlo en el siguiente hilo del foro

https://velneo.es/foros/topic/lentitud-en-campo-objeto-texto/

En las rejillas yo he optado por la solución de tener un enlace a tabla estática con iconos o colores para evitar tener que colorear las celdas. En el caso de los formularios todas las condiciones las calculo antes y las paso como variables.

No Trabajo en cloud y aún así se notaba bastante retardo.

Un saludo


([N4] Ramon Denuc) #9

Hola,
Os adjunto la contestación de Soporte a la pregunta de: ¿porque las Condiciones de Estilo penalizan en las Rejillas en Cloud?.

[N4] avela (Centro de soporte de Velneo)
19 de abr. 10:57

Estimado cliente:
Buenos días,

Nuestra recomendación en este caso es que revise en vTutor el tutor siguiente para ver la forma de optimizarlo para cloud, ya que el uso de condiciones de estilo en cloud conlleva lentitud a la hora de su evaluación.

Buenas prácticas de rendimiento
Rejillas: Condiciones de activo, visible y color en columna
Refresco constante
Aunque no lo apreciemos, los datos de las rejillas se están refrescando constantemente desde su carga, cada vez que nos movemos con el ratón por encima de la rejilla, cuando avanzamos y retrocedemos de registro, de página, etc.

Estos refrescos también implican el recálculo de las condiciones de todas las columnas.

Debemos ser conscientes de esta situación a la hora de programar las fórmulas de las condiciones de visibles, activo y de color de las columnas.

Fórmulas sencillas
Debemos procurar que nuestras fórmulas de las condiciones de visibilidad, activo y color sean lo más sencillas posible.

Si necesitamos ejecutar una función que nos devuelva el valor a evaluar en la condición tenemos que intentar que cuando estamos en 1º plano esta función no esté penalizada por la lectura de registros, y en la medida posible usar variables globales.

¿Cómo optimizar?
Un ejemplo habitual de optimización de fórmulas es la evalución de los permisos del usuario tanto a nivel de visualización, como de edición. Si es posible es mejor tener los permisos del usuario en una variable global en memoria sobre la que podamos buscar si contiene el permiso adecuado, antes que estar constantemente haciendo lecturas en la tabla de permisos.

Si vamos a tener muchas condiciones de color diferentes, es preferible buscar una alternativa en la que evitemos tener que estar constantemente evaluando un montón de fórmulas. Esta alternativa pasa por incluir en la tabla un campo puntero a tabla estática en la que para cada registro ya tendremos resuelta la condición, y que además nos permite en la rejilla mostrar el color que podría ser el campo dibujo del elemento de la tabla estática.

En ficho tutor dispone de dos ejemplos, uno sin optimizar y otro con optimización.

Si tienes dudas o quieres realizar cualquier otra consulta, estaremos encantados de atenderte.

Un cordial saludo,
Antonio V.