Recalcular control


([N1] Rafael) #1

Hola amigos,
Tengo un formulario con un separador de formularios. Cada pestaña del separador me muestra un formulario que sólo contiene un control objeto. Los controles objeto son búsquedas + rejilla. Quiero que cada vez que pulse una pestaña del formulario principal, se recalcule el contenido del formulario de la pestaña.
Para hacer esto, en cada formulario de cada pestaña creo una conexión de evento 'Gana el foco' que lanza un evento con la instrucción 'Recalcula control('control')'. El control siempre es el control objeto que contiene búsqueda + rejilla.
No me funciona y no sé si es la manera correcta de hacerlo o que.

Gracias por vuestra ayuda y un saludo.

Rafa.


([N4] rcueto.velneo) #2

Hola:

El evento no es disparado porque el control no gana foco, el foco lo gana la pestaña del separador. De las señales disponibles actualmente, la que te valdría sería la de Timer.

Un saludo.


([N1] Rafael) #3

Hola rcueto,

Lo he probado como me dices y funciona perfectamente, pero creo que no es la manera idónea de hacer esto. ¿Cómo hacéis vosotros esto normalmente?

Gracias y un saludo.

Rafa.


([N4] rcueto.velneo) #4

Hola:

Podrías no usar separadores sino simularlos, por medio de controles superpuestos y con condiciones de visibilidad, que se activarán mediante botones que serán los que simulen las pestañas; desde estos botones podrás ejecutar eventos que recalculen el control que correspondan y lo activen.

Un saludo.


([N1] Rafael) #5

Hola rcueto,
Gracias por tus respuestas. Quizás si te explico mi problema me des una mejor solución. Tengo una rejilla que tiene que aparecer filtrada por 4 filtros distintos. Para esto he supuesto que tengo que crear 1 búsqueda por cada filtro distinto. ¿Hay alguna manera 'típica' de Velneo para aplicar distintos filtros a una misma rejilla que no sea con 4 controles objeto de búsqueda+rejilla?
Gracias de antemano y un saludo.
Rafa.


([N4] rcueto.velneo) #6

Hola:

No es necesario crear una búsqueda con un único componente por cada filtro, puedes crear una única búsqueda con cuatro componentes distintos.

Un saludo.





([N1] Rafael) #7

Hola rcueto,
Corrígeme si me equivoco, pero creo que los componentes de la búsqueda tienen que ver con la ordenación de la rejilla, no con el filtro que se hace a los datos, que más bien es cosa de la propiedad 'Fórmula filtro'. ¿no es así?
Quizás esa fórmula filtro pueda condicionarla a algo que me permita tenér un sólo objeto búsqueda. Si pudiera saber de que forma lo hacéis normalmente, me ayudaría bastante.

Gracias y un saludo.
Rafa.


([N4] fgutierrez.velneo) #8

No es necesario el uso de filtros. Además, estos ralentizan la ejecución de la búsqueda ya que se trata de filtros secuenciales que han de recorrer todos los registros para localizar los que buscas. Por el contrario, la búsqueda hace uso de los índices, que están optimizados precisamente para estas tareas.

Debes crear en una búsqueda tantos componentes como aquellos por los que quieres realizar la búsqueda. Para resolver estos componentes puedes usar un formulario y asociar los campos a la resolución o variables globales.

Los modos de mezcla te permiten combinar las listas resultantes de buscar por cada uno de los componentes, devolviéndote como resultado una única lista según hayas configurado la búsqueda.

Tienes por un lado la [url url=../info/v7_70_es/velneo_vdevelop/cajas_objetos_y_editores/#busqueda]ayuda[/url] en la zona [url url=../info]Info[/url], para ver cómo funcionan las búsquedas, y por otro lado el [url url=../info/v7_70_es/primeros_pasos]Primeros pasos[/url], donde tienes un [url url=../info/v7_70_es/primeros_pasos/creacion_de_la_caja_de_aplicacion/#busqueda]ejemplo [/url]de búsqueda.

Un saludo.


([N4] fgutierrez.velneo) #9

No es necesario el uso de filtros. Además, estos ralentizan la ejecución de la búsqueda ya que se trata de filtros secuenciales que han de recorrer todos los registros para localizar los que buscas. Por el contrario, la búsqueda hace uso de los índices, que están optimizados precisamente para estas tareas.

Debes crear en una búsqueda tantos componentes como aquellos por los que quieres realizar la búsqueda. Para resolver estos componentes puedes usar un formulario y asociar los campos a la resolución o variables globales.

Los modos de mezcla te permiten combinar las listas resultantes de buscar por cada uno de los componentes, devolviéndote como resultado una única lista según hayas configurado la búsqueda.

Tienes por un lado la [url url=../info/v7_70_es/velneo_vdevelop/cajas_objetos_y_editores/#busqueda]ayuda[/url] en la zona [url url=../info]Info[/url], para ver cómo funcionan las búsquedas, y por otro lado el [url url=../info/v7_70_es/primeros_pasos]Primeros pasos[/url], donde tienes un [url url=../info/v7_70_es/primeros_pasos/creacion_de_la_caja_de_aplicacion/#busqueda]ejemplo [/url]de búsqueda.

Un saludo.


([N4] fgutierrez.velneo) #10

No es necesario el uso de filtros. Además, estos ralentizan la
ejecución de la búsqueda ya que se trata de filtros secuenciales que
han de recorrer todos los registros para localizar los que buscas. Por
el contrario, la búsqueda hace uso de los índices, que están
optimizados precisamente para estas tareas.


Debes crear en una búsqueda tantos componentes como aquellos por los
que quieres realizar la búsqueda. Para resolver estos componentes
puedes usar un formulario y asociar los campos a la resolución o
variables globales.


Los modos de mezcla te permiten combinar las listas resultantes de
buscar por cada uno de los componentes, devolviéndote como resultado
una única lista según hayas configurado la búsqueda.

Tienes por un lado la [url url=../../info/v7_70_es/velneo_vdevelop/cajas_objetos_y_editores/#busqueda]ayuda[/url] en la zona [url url=../../info]Info[/url], para ver cómo funcionan las búsquedas, y por otro lado el [url url=../../info/v7_70_es/primeros_pasos]Primeros pasos[/url], donde tienes un [url url=../../info/v7_70_es/primeros_pasos/creacion_de_la_caja_de_aplicacion/#busqueda]ejemplo [/url]de búsqueda.

Un saludo.





([N1] Rafael) #11

Hola fgutierrez,
A ver si os aclaro lo que necesito hacer para encontrar la mejor solución.
Tengo una rejilla de incidencias y quiero mostrarla en un listado 'filtrada' de manera distinta según 3 botones. Un botón es para las 'Pendientes', otro para las 'Sin asignar' y otro para las 'Finalizadas'. ¿Cómo plantearíais esto vosotros?

Gracias y un saludo.
Rafa.





([N4] rcueto.velneo) #12

Hola:

Si es esa la necesidad que tienes entonces te valdría la solución indicada por nosotros varios posts atrás:
[quote]Podrías no usar separadores sino simularlos, por medio de controles
superpuestos y con condiciones de visibilidad, que se activarán
mediante botones que serán los que simulen las pestañas; desde estos
botones podrás ejecutar eventos que recalculen el control que
correspondan y lo activen.
[/quote]Esa solución fue la que te dimos partiendo de la base de que querías usar un separador de subformularios con tres pestañas y forzar el recálculo del contenido de cada pestaña vez que se accediese a la misma; era la más parecedia al uso de separadores y además forzaba el refresco.

No obstante ahora matizas que quieres mostrar una rejilla filtrada de tres maneras distintas usando tres botones, en ese caso podrías incrustar una única rejilla en un formulario usando un control objeto y tres botones que disparen tres eventos que fuercen su recálculo.

Un saludo.





(Tony Diana) #13

¿Se va a disponer de la funcionalidad para saber si tenemos foco en un subformulario?