Página 1 de 1

Detectar si un registro cambió

Publicado: Mié May 04, 2022 7:41 pm
por duenda
Hola a todos, algo que parece bastante básico pero nunca me habia tocado hacerlo :lol:

1. Tengo el típico formulario para tabla padre-hija
2. Necesito saber si el usuario ingresa por CAMBIAR, si modificó alguno de los datos, ya sea de la cabecera o del browse de la hija, para guardar la última fecha en que se "revisó" el registro, pero si el usuario presiona ACEPTAR sin realizar cambios, que la fecha no varie...
3. Es posible cotejar esto de alguna manera sin tener que guardar los valores del antes y el después para compararlos?

Gracias!

Re: Detectar si un registro cambió

Publicado: Lun May 09, 2022 4:12 pm
por PolarBear
Saludos

Si es posible. Bastara que al final de procedimiento (Embedded Kill Procedure) pongas algo asi

if Self.Request = ChangeRecord
if Self.Response = RequestCompleted
!** Codigo para actualizar el registro padre, pues hubo cambios
end
end

Y, si el usuario canceló, el codigo de actualizar no se ejecuta

Re: Detectar si un registro cambió

Publicado: Lun May 09, 2022 4:38 pm
por duenda
Hola PolarBear!

Gracias por tu respuesta, pero ese código tengo entendido se ejecuta independientemente de que el usuario haga un cambio, verdad?

Porque yo tengo que dejar guardada la fecha de "revision" del registro sólo si se cambió algo. Y suele suceder que el usuario ingresa al registro solo para "verlo" y sale con Aceptar de todas maneras. En ese caso yo no guardaría la revisión del registro porque no hubo modificaciones... sólo deberia actualizarla por ejemplo, si me cambió una cantidad, un precio, etc.

Re: Detectar si un registro cambió

Publicado: Mar May 10, 2022 2:03 am
por jmatzke
Hola,

En el TakeCompleted debes poner el siguiente código:

IF NOT SELF.Primary.Me.EqualBuffer(SELF.Saved)
message('Cambio')
END

Espero te sea de utilidad
Saludos!
Jose

Re: Detectar si un registro cambió

Publicado: Mar May 10, 2022 4:24 pm
por duenda
Gracias José! Lo estaré probando y te aviso!!!! ;)

Re: Detectar si un registro cambió

Publicado: Mar May 10, 2022 6:48 pm
por dgasverde
Hola

Ese código que te pasaron solo sirve para detectar cambios en la cabecera en casos de formularios que tengas tablas hijas las modificaciones hechas en ellas no serán detectadas. Dependiendo que hayas usado para editar las tablas hijas y cual es tu soporte de datos (SQL o TPS u otros) podrás usar diferentes medios para la comparación.

Saludos
Daniel

Re: Detectar si un registro cambió

Publicado: Mié May 11, 2022 7:41 pm
por duenda
Daniel, estoy usando SQL de Firebird.