Recalcular rejilla con subindexador


([N1] Nuri Ruiz) #1

Hola a todos:
Tengo un formulario principal llamado PresupCocinas con varios campos y un objeto rejilla con un subindexador.
El subindexador incluye uno de los campos de PresupCocinas (campo Color Módulo).
El cálculo a la hora de seleccionar artículos en la rejilla lo hace bien (la rejilla no es editable, los registros se dan de alta en un formulario asociado), el problema es que una vez dado de alta el registro, si cambio el campo Color Módulo, no se me recalcula la rejilla.
He probado a poner un evento con conexión al campo Color Módulo con un proceso Interfaz: Recalcular, pero no hace nada.
No sé si es que no hago bien el proceso o tiene algo que ver con el subindexador.
¿Alguien podría indicarme cómo hacerlo?
Gracias por vuestra ayuda.
Incluyo vistas de detalle.
Gracias por vuestra ayuda.

[attachment=22034,1719] [attachment=22034,1720]


([N1] Pepeto) #2

Hola,

Dices que has creado el Evento, pero ¿Has creado la Conexion de evento a la perdida de foco del campo?
La forma en que describes como has "Creado el evento con conexion al campo" me deja en dudas, y deberia funcionarte.

un saludo
Jose Luis
http://www.ascsl.com


([N1] Nuri Ruiz) #3

Hola Pepeto,
La conexión está creada y se lanza al soltar el ratón.
Creo que no estoy haciendo bien algo del proceso.
Incluyo vista de la conexión y del proceso.
Gracias por tu tiempo.

[attachment=22047,1721] [attachment=22047,1722]


([N1] Pepeto) #4

Asi, sin ver nada mas, lo unico que te puedo decir, es que no se si la señal "Raton: boton soltado" es la mas apropiada.

Yo lo pondria a la perdida del foco del campo, asegurandote asi de que cada vez que se edita el campo en cuestión se recalcula la vista, haya o no, cambiado el valor del campo.

Un saludo
José Luis
htpp://www.ascsl.com




([N1] Pepeto) #5

Una observación se me viene a la cabeza, releyendo tu mensaje inicial,

Has considerado que si este funcionando correctamente, te explico:

1. El evento recalcula la vista de datos, y eso puede que este funcionando correctamente.
2. El problema quiza esta, en que no que no estas recalculando correctamente son los valores que se muestran en la rejilla, y es lo que deberias modificar, antes de refrescar la vista de datos.

un saludo
José Luis
http://www.ascsl.com


([N1] Nuri Ruiz) #6

He puesto la señal a la pérdida de foco, y tampoco funciona.
¿Podrías indicarme cómo recalcular un campo de la rejilla? En este caso no me vale el modificar campo, porque el campo que se modifica no está en la rejilla, sino en el formulario principal, lo que varía en la rejilla es un campo con un subindexador cuyo parámetro viene dado por el campo cambiado en el form principal. En resumen, que no sé qué he de poner en el proceso para recalcular un campo.




([N1] Pepeto) #7

Utiliza las sentencias de interfaz:

-Interfaz: procesar ( REJILLA , Todos)
---- recorrer lista lectura/escritura
-------- Modificar campo (CAMPO , valor)
-Interfaz: recalcular(LINEASANTOS)

un saludo
José Luis
http://www.ascsl.com


([N1] Nuri Ruiz) #8

El campo que necesito recalcular es un enlace a maestro, por lo que si hago una modificación de campo, lo que cambiará será el valor en la tabla maestra enlazada, cosa que no nos interesa.
Te explico:
Tengo un formulario principal PresupCocinas que incluye el objeto rejilla LineasAltos.
En la tabla LineasAltos tengo un enlace a PrecioMod y otro a Modelo. La tabla PrecioMod incluye los campos Color (enlace a tabla Colores), Medida y Precio.
En el formulario PresupCocinas selecciono el Color (enlace a la tabla Colores). En LineasAltos selecciono la Medida, que contiene un subindexador con parámetros a PresupCocinas.Color y a LineasAltos.Modelo. La Medida seleccionada nos da el Precio (Precio y Medida comparten Id).
Lo que necesito es recalcular Medida al cambiar el Color en PresupCocinas, o sea que si nos había seleccionado el Id X de la tabla PrecioMod, nos vaya al Id Y, donde la Medida y el Modelo es igual a Id X pero el Color es igual al nuevo Color seleccionado.
En resumen, que no necesito modificar un campo, sino recalcularlo en función de su subindexador.
Una vez hecho esto, haríamos un Interfaz: Recalcular (LineasAltos).
Sé que es liado, pero el resultado depende muchos factores.
Gracias por tu ayuda.




([N1] Nuri Ruiz) #9

¿Alguien podría decirme qué función debo utilizar en proceso para seleccionar un registro determinado dentro de un campo enlazado? O si alguien tiene hecho algo parecido, ¿me podríais mostrar una vista del proceso?


([N1] Giuseppe::Komenco) #10

No entiendo tu pregunta.

Te refieres a "Cargar ficha de maestro" (hablo de memoria), o algo así?


([N1] Nuri Ruiz) #11

En un campo enlazado de una rejilla selecciono una medida, lo que me da un precio.
Esta medida varía en función del color seleccionado en el formulario principal.
Si cambio el color del form principal, ¿cómo puedo hacer en proceso para que cambie el precio manteniendo la medida?
Ej:
Color Medida Precio
blanco 90 35,00
blanco 70 25,00
azul 90 38,00
azul 70 28,00
Al cambiar el color en form principal, automáticamente debería cambiar el precio de la rejilla (Interfaz: Recalcular (rejilla) no funciona)
Gracias por contestar Giuseppe.


([N1] Nuri Ruiz) #12

El campo color no está incluído en la tabla de la rejilla, es un parámetro del subindexador que controla el precio.
El problema es que no sé cómo recalcular este subindexador.


([N1] Giuseppe::Komenco) #13

No sé si será ya por las horas que son, pero es que no termino de verlo.
.
Si en en el campo de la tabla ya tienes establecido que su contenido depende de los valores establecidos, una vez guardado en disco, deberías ver el cambio en la rejilla.
.
Quizás, el problema, es, que esperas que ese campo se autoactualice en la rejilla, pero, hasta donde yo sé, una vista de datos, te muestra datos ya guardados de la tabla. No sé si me explico. Tendrías que recorrer los registros de la tabla de esa vista de datos y modificar el campo.
.
Quizás con una visual de las tablas involucradas y sus relaciones te entienda mejor. Perdona, pero como te digo, a estas horas ya estoy out total.
.
Saludos.


([N1] Nuri Ruiz) #14

Hola Giuseppe:
Arriba, en el primer comentario tienes las vistas del formulario principal. Señalo el campo Color en un círculo en rojo.
Después aparece una vista del enlace maestro ImpMod (verás que este campo aparece también en la rejilla del form principal). ImpMod depende de un subindexador, entre los parámetros del cual aparece el campo Color. El campo ImpMod es el que necesito que se recalcule a través del subindexador después de cambiar el color.
Gracias de nuevo.


([N1] Giuseppe::Komenco) #15

Si más o menos creo que te entiendo, pero, como te digo en mi anterior comentario, la vista de datos (la rejilla) te está mostrando datos guardados de una tabla, quiero decir, que por mucho que tu cambies, no te va a cambiar los datos que ya se encuentran registrados para esas fichas....,sólo te serviría a la hora de registrar nuevas fichas.

Espero explicarme correctamente.


([N1] Nuri Ruiz) #16

Vale, entendido.
Entonces lo que necesito es un proceso Modificar campo.
Ahora, si el campo ImpMod que es el que necesito modificar, es un enlace a maestro, ¿cómo accedo en el proceso al campo Medida que se encuentra dentro del enlace ImpMod?
Al seleccionar en el proceso Modificar campo me aparece ImpMod, pero no los campos que contiene.
Igual no necesito Modificar campo, sino poder acceder a los registros de ImpMod.


([N1] Nuri Ruiz) #17

Creo q


([N1] Nuri Ruiz) #18

Creo que ya sé lo que necesito, envío vista del proceso.
Aún así, no me funciona, imagino que me falta alguna instrucción.

[attachment=22164,1730]


([N1] Nuri Ruiz) #19

LO HE HECHO!!!!! Y ADEMÁS FUNCIONA!!!!!
Me faltaba la instrucción Leer ficha seleccionada.
Gracias a todos por vuestros consejos.

[attachment=22165,1731]