Refrescar formulario desde rejilla en vista de datos


([N3] blanyi) #1

Buenos días compañeros velneadores.
Tengo un formulario y en el formulario, entre otras cosas, tengo un vista de datos con un rejilla y boton de comando. Dispongo de na variable local al formulario. La condición activo o desactivado del boton de comando depende del valor que tenga la variable local.

La rejilla que está en la vista de datos es editable y tiene también una variable local en la que tiene acumulado el número de registros con unos errores que se pueden presentar. La idea es que el usuario corrija (edite) un campo de fecha y en la medida que lo va corrijiendo, la variable local va rebajando su valor hasta llegar a cero. Esto lo hago con un manejador de evento dentro de le rejilla que se dispara cuando se hace el cambio en el campo de fecha.

Lo que quiero es que cuando se ejecute el evento de la rejilla automaticamente se pudiera actualizar la variable local del formulario. Ya se que existe una orden para obtener el valor de una variable local de una vista de datos, pero no eso lo que quiero porque en el formulario no se cuando se ha producido un cambio en la rejilla. Quiero que cuando se produzca el cambio en la rejilla se actualice en el formulario.

Espero ahber explicado, gracias.

YIMY MORA ACONCHA


([N3] pacosatu) #2

Hola YIMY.

Tendrás que recurrir al API, ya que desde Velneo nativo no podemos acceder a las variables locales del Formulario padre.
Desde la Vista de datos puedes acceder a theMainWindow.currentView() o dataView().parentDataView().

Si no quieres usar el API prueba capturando los eventos de columna de la Rejilla desde el formulario principal.

Saludos
Paco Satué


([N3] blanyi) #3

Gracias Paco por tu valiosa ayuda, probaré con el API.

¿Cómo capturo los eventos de columna de rejilla desde el formulario principal?

YIMY MORA ACONCHA


([N3] pacosatu) #4

Hola YIMY.

Los eventos de columna los tienes disponibles en el control de Rejilla.
Añade en el formulario principal una conexión de evento al control Rejilla -> columna.

Saludos
Paco Satué


([N3] blanyi) #5

Hola Paco, nuevamente gracias.

Eso era lo que necesitaba. Lo resolví añadiendo en el formulario principal una conexión de evento (cambiar valor) al control Rejilla -> columna, tal como lo indicaste.

No tenía conocimiento de como funcionaba esto y resulto ser muy util para mi necesidad.

Dios te bendiga.

YIMY MORA ACONCHA