Mostrar maestros no asignados


([N1] xavipv) #1

 

Buenos días a todos!

 

Tengo tres tablas:

Tabla maestra TAREAS

Tabla maestra TAGS

Tabla histórica TAGS_TAREAS

 

Las dos maestras las tengo relacionadas con un doble plural, mediante la tabla intermedia histórica.

 

En el formulario de TAREAS muestro dos rejillas, una al lado de la otra, una con los TAGS YA ASIGNADOS que tiene la tarea (basada en TAGS_TAREAS), y otra con los TAGS DISPONIBLES para poder asignarle (basada en TAGS). La idea es que pueda asignar TAGS arrastrando con el ratón (usando un drag&drop). Al asignar (arrastrar) un TAG, quiero que aparezca en la rejilla de TAGS ASIGNADOS y desaparezca de la rejilla de TAGS DISPONIBLES. Al cerrar y volver a entrar en la tarea, quiero que esta última rejilla me siga mostrando solamente los TAGS DISPONIBLES, no todos.

 

Ya lo tengo todo hecho y me funciona. Lo que me ha dado algún problema ha sido la rejilla de TAGS DISPONIBLES, ya que no tiene que mostrar toda la tabla como origen, sino solamente los tags que no tienen asignada esta tarea en particular (que no disponen del registro en la tabla histórica). Esto lo he solucionado mediante un proceso que alimenta la rejilla, en el que cargo la lista de todos los TAGS, y para cada uno cargo sus plurales; luego comparo el ID de la tarea con el de la actual, y si no coindice añado la ficha a la salida. Estoy aprendiendo V7 y me surgen muchas dudas. Me da la impresión que ha quedado un proceso un poco largo y complicado. ¿Se podría haber resuelto esto directamente en la base de datos, mediante enlaces o índices, de una forma más elegante?

 

 

Muchas gracias!

Xavi.

__________________________________________________________

"La mala noticia es que el tiempo vuela. La buena, que tú eres el piloto."

Cashback (2006)


([N1] cristianvg2003) #2

hola,

Pues mira yo lo hubiese hecho simplemente generando una actualizacion desde TAGS_TAREAS A TAGS, la cual acumule en un campo x la cantidad de tareas en las que aparece el tag, ya despues mediante una busqueda o un filtrar lista tomo la lista de TAGS y solo escojo aquellos que tienen 0 en el campo x.

 

espero haberte ayudado,


([N1] xavipv) #3

 

Buenos días Cristian. Muchas gracias por tu ayuda.

 

He estado probando lo que tu me has dicho, pero me temo que sería útil para otra caso distinto:

Usar la actualización y acumular en un campo de TAGS lo que haría sería controlar los TAGS que nunca se han usado en general. Lo que a mi me interesa controlar son los TAGS NO USADOS para cada tarea individual.

 

Lo he estado mirando más y la verdad no se me ocurre nada para solucionarlo directamente desde la base de datos.

Os pongo el proceso que he hice para cargar las lineas de la rejilla de TAGS NO USADOS, pero tengo muchas dudas. Me da la impresión que esto ha de ser muy lento, ya que se patea TODOS los registros de las tablas TAGS y TAGS_TAREAS. Supongo que en este caso,  ejecutarlo en 3er plano sería muy conveniente.

 

¿Alguien me puede decir si voy por buen camino?

 

Muchas gracias!

Xavi.

__________________________________________________________

"La mala noticia es que el tiempo vuela. La buena, que tú eres el piloto."

Cashback (2006)

[attachment=7448,728]





([N1] JorgeVelasco) #4

Buenas Xavi.

Así a bote pronto, habría que probar el rendimiento, podrías hacerlo con cestas.

En una cesta metes todos los registros de TAGS.

Haces una búsqueda de TAG_TAREAS de la tarea en cuestión, cargas sus maestros y a la lista resultante le pones cesta:quitar

Así tendras la lista de TAGS que no están en la tarea que muestras.

Espero te sirva como punto de partida.

Un saludo.

 

 


Jorge Velasco Fernández

jvelasco@theseedsc.com

www.theseedsc.com

 

 

 


([N1] xavipv) #5

 

Estimado Jorge.

 

He probado con tiempos de rendimiento (siempre sobre la nube), con una tabla de 1.000 TAGS.

 

El primer proceso que yo había hecho al principio: 2.5 minutos esperando!!!!!

El segundo, usando cestas tal y como tú me has dicho: unos 250 milisegundos.

Este segundo proceso pero ejecutado en 3er plano (en el servidor): 90 milisegundos!!

 

Esta claro que con Velneo hay que saber como hacer las cosas. ;-)

Muchísimas gracias por tu ayuda, me has ayudado mucho!

 

Feliz Navidad!

Xavi.

__________________________________________________________

"La mala noticia es que el tiempo vuela. La buena, que tú eres el piloto."

Cashback (2006)