Refresco de Plurales


([N1] MATIAS) #1

Buenas tardes a tod@s,

quisiera plantear un “problema” que me está ocurriendo y me gustaría saber si hay otra forma más eficiente de resolverlo.
Tengo un formulario con Plurales (Provincias / Localidades). El Formulario carga perfectamente las localidades de la provincia seleccionada y se refresca automáticamente cuando se añade una nueva localidad o cuando se modifica el nombre de la misma.
El “problema” se plantea cuando a una localidad le modifico la provincia. El registro es modificado en la BBDD correctamente, pero sigue apareciendo en la lista de plurales cuando ya debería haber desaparecido.
He conseguido resolverlo forzando a “Recargar Lista” con el método On Focus teniendo la propiedad “Siempre cuadro de diálogo” como “Verdadero” o con On Show si los tengo como “Falso”.

Habría otra forma de hacerlo? Por qué se “refresca” la lista automáticamente cuando hay un nuevo registro o cambia el nombre de la localidad y no cuando cambia la Provincia?

Adjunto “pantallazo” de ambos formularios.

Un saludo y muchas gracias



([N3] pacosatu) #2

Hola MATIAS.

Interesante pregunta que seguramente tendría que aclararse en los cursos básicos de Velneo.

Es un tema del mecanismo de refresco de Velneo en los formularios. En este caso tenemos una relación uno->varios.

  • La parte uno (maestro) está asociada al Origen del formulario.
  • La parte varios (plurales) se muestra en una Rejilla del formulario.

Las Rejillas son contenedores de registros (listas) y por sí solas no se rellenan. Necesitan de un Proceso inicial para rellenarla y de un comando Recalcular(rejilla) para actualizarla.

La rejilla solo se actualiza automáticamente cuando Añadimos/Modificamos/Eliminamos un registro desde los Formularios asociados a la Rejilla. Pero en este caso Velneo no ejecuta un Recalcular, simplemente refresca las columnas del registro existente, añade un registro nuevo o lo quita de la Rejilla.

Por lo tanto, cambiar la Provincia (maestro) de la Localidad es simplemente una modificación de un campo del registro y como tal esa columna se refresca. Como NO se ejecuta un Recalcular(rejilla_plurales) pues no desaparece el registro de la Rejilla.

En resumen, el Recálculo de las Rejillas debes hacerlo manualmente, pues solo se ejecutan en la carga inicial de las Vistas de datos. Tal como lo tienes montado y la forma en como está hecho Velneo no deberías de cambiar nunca el maestro, es decir, una vez asignas la provincia ésta no debe de cambiar.

Si quieres cambiar la Provincia, hazlo desde otro formulario no vinculado a la Rejilla de plurales porque de lo contrario tendrás que montar un pequeño lío para que Velneo ejecute un Recalcular(rejilla_plurales).
Tú dices:

He conseguido resolverlo forzando a “Recargar Lista” con el método On Focus teniendo la propiedad “Siempre cuadro de diálogo” como “Verdadero” o con On Show si los tengo como “Falso”.

Efectívamente, con esto lo resuelves, pero como ya habrás supuesto no es muy óptimo y pierdes el registro seleccionado con cada Recálculo. Además esto de cara al Usuario final puede ser desconcertante.

Espero no haberte liado más y espero que modificar punteros a maestro no sea lo más habitual en tus Aplicaciones.

Saludos
Paco Satué


([N1] MATIAS) #3

Muchas gracias Paco,

Me queda perfectamente claro.
Como podrás comprobar es ahora cuando estoy intentando
adentrarme en Velneo.

Esta característica de Velneo (plurales) es muy interesante que en otros lenguajes no he encontrado de forma tan automatizada, por eso lo de probar con este sencillo ejemplo.
Como bien dices, no es lo más lógico cambiar en registros campos que apuntan a maestros.

Un cordial saludo y muchas gracias de nuevo.