GeneXus - Ayuda en transaccion Genexus 9

 
Vista:
Imágen de perfil de Rodolfo Daniel

Ayuda en transaccion Genexus 9

Publicado por Rodolfo Daniel (19 intervenciones) el 20/03/2014 19:14:00
Hola amigos del Foro... desarrollo con genexus 9 para vfp6.0.

Tengo una Trn. FICHAS
FichCod* - código de ficha
FichFecha - fecha
FichEstado - estado vigente o anulada
FichFeAnu - Fecha de anulación
FichHoAnu - Hora de anulación

El tema es el siguiente: el att. FichEstado es un checkbok (checked value = A , unchecked value = V) lo que quiero es registrar la fecha y hora de anulación. cuando el usuario tilde el checkbox. value = A.

Si alguien me puede ayudar, quedo muy agradecido.
Saludos. Rodolfo. email: [email protected].
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 17
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

Ayuda en transaccion Genexus 9

Publicado por Julio (305 intervenciones) el 21/03/2014 02:29:46
Rules:
FichFeAnu = &Today if FichEstado = 'A' on BeforeUpdate;
FichHoAnu = &Time if FichEstado = 'A' on BeforeUpdate;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodolfo Daniel

Ayuda en transaccion Genexus 9

Publicado por Rodolfo Daniel (19 intervenciones) el 21/03/2014 16:57:10
Esa regla no la puedo utilizar porque el generador para vfp.6.0. no permite BeforeUpdate.-

Alguna otra solución?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

Ayuda en transaccion Genexus 9

Publicado por Julio (305 intervenciones) el 22/03/2014 00:29:29
Coméntanos que instrucciones has probado y no te han funcionado!

Prueba esto:

FichFeAnu = &Today if after(FichEstado ) and FichEstado = 'A';
FichHoAnu = &Time if after(FichEstado ) and FichEstado = 'A' ;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodolfo Daniel

Ayuda en transaccion Genexus 9

Publicado por Rodolfo Daniel (19 intervenciones) el 23/03/2014 01:50:25
Bien lo tuyo Julio.

Con esa regla si me registra la fecha y la hora de anulación.
Ahora el tema es que cada vez que entro en modo UPD me modifica esa fecha y hora.

La idea es que registre solamente una vez cuando lo tildo al check box, y no cada vez que entre en modo de modificación.
Quiero intentar con el 'Event FichEstado.Click' y con un Prc.. Será que dá?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

Ayuda en transaccion Genexus 9

Publicado por Julio (305 intervenciones) el 24/03/2014 02:27:22
Entonces ponlo así:

FichFeAnu = &Today if after(FichEstado ) and FichEstado = 'A' and FichFeAnu.IsEmpty();
FichHoAnu = &Time if after(FichEstado ) and FichEstado = 'A' and FichHoAnu.IsEmpty();

Y yo le añadiría también esto:

FichEstado.Enabled = 0 if not FichFeAnu.IsEmpty();

Esto es para que el chekbox pueda ser cambiado una sola vez.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodolfo Daniel

Ayuda en transaccion Genexus 9

Publicado por Rodolfo Daniel (19 intervenciones) el 24/03/2014 02:57:38
Muy bien Julio. Perfecto!!

Lo único que no utilicé fue la ultima regla...

Esto fue lo que hice:

FichFeAnu = SysDate() if after(FichEstado ) and FichEstado = 'A' and FichFeAnu.IsEmpty() ;
FichHoAnu =SysTime() if after(FichEstado ) and FichEstado = 'A' and FichHoAnu.IsEmpty() ;

FichFeAnu = NullValue(FichFeAnu ) If FichEstado = 'V' ;
FichHoAnu = NullValue(FichHoAnu ) If FichEstado = 'V' ;

Es por si, en el futuro, se quiere desanular la ficha; al destildarlo pasa a 'V' (vigente) y limpia FichFeAnu y FichHoAnu para que se pueda anular nuevamente.-
.
Muchas gracias Julio...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar