Detectar si un registro cambió

Consultas, trucos, consejos. Todo sobre Clarion en todas sus versiones
Responder
duenda
Al nivel de RZ
Mensajes: 158
Registrado: Mar Mar 01, 2011 8:36 pm
Contactar:

Detectar si un registro cambió

Mensaje por duenda » Mié May 04, 2022 7:41 pm

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!


PolarBear
Ayudante de Santa
Mensajes: 73
Registrado: Lun Feb 17, 2014 6:42 pm
Contactar:

Re: Detectar si un registro cambió

Mensaje por PolarBear » Lun May 09, 2022 4:12 pm

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

duenda
Al nivel de RZ
Mensajes: 158
Registrado: Mar Mar 01, 2011 8:36 pm
Contactar:

Re: Detectar si un registro cambió

Mensaje por duenda » Lun May 09, 2022 4:38 pm

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.

jmatzke
Mensajes: 2
Registrado: Lun Feb 07, 2011 12:25 pm
Contactar:

Re: Detectar si un registro cambió

Mensaje por jmatzke » Mar May 10, 2022 2:03 am

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

duenda
Al nivel de RZ
Mensajes: 158
Registrado: Mar Mar 01, 2011 8:36 pm
Contactar:

Re: Detectar si un registro cambió

Mensaje por duenda » Mar May 10, 2022 4:24 pm

Gracias José! Lo estaré probando y te aviso!!!! ;)

dgasverde
Mensajes: 9
Registrado: Mié Feb 16, 2011 3:47 pm
Ubicación: Lomas de Zamora - Buenos Aires - Argentina
Contactar:

Re: Detectar si un registro cambió

Mensaje por dgasverde » Mar May 10, 2022 6:48 pm

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
---------------------------------------------------------------------------------------------
Daniel Gasverde
dgasverde@ftsis.com.ar

duenda
Al nivel de RZ
Mensajes: 158
Registrado: Mar Mar 01, 2011 8:36 pm
Contactar:

Re: Detectar si un registro cambió

Mensaje por duenda » Mié May 11, 2022 7:41 pm

Daniel, estoy usando SQL de Firebird.


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado