GeneXus - Ayuda con procedimiento

 
Vista:

Ayuda con procedimiento

Publicado por Patilu (1 intervención) el 05/05/2009 21:10:29
Buenas, como estan?
Quisiera ayuda para realizar un procedimiento que actualize diariamente 2 registros de una tabla, ésto automaticamente al iniciar sesion en el sistema.. Estoy haciendo un Sistema de Asoc. de Empleados. Los registros que necesito actualizar diariamente (sin importar dias feriados) corresponden al saldo e interes devengado sobre aporte de socios.. ya realize el calculo de los mismos pero no se como actualizarlos diariamente!!!
Estoy trabajando con GX90 y VFP..
Agradecera cualquier ayuda! Saludos..
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

RE:Ayuda con procedimiento

Publicado por Gabriel (75 intervenciones) el 06/05/2009 13:58:16
Patilu, me parece que una opcion es agregar el procedimiento en el evento start del menu de inicio y ahi cuando ingreses se va a ejecutar, tendrias tambien que controlar si ya se actualizo con marcando alguna fecha que estan los registros actualizados.
Espero te sirva 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

RE:Ayuda con procedimiento

Publicado por Patilu (17 intervenciones) el 07/05/2009 14:41:54
Gracias por responde Gabriel..Si efectivamente el proced. lo coloco en el evento star.. me ejecuta.. pero por cada vez que entre al sistema lo hace.. a pesar de que guardo la fecha de actualizacion.. el no esta reconociendo.. y lo hace cada vez que ingreso.. Te copio mi proced.

//****OBTIENE EL NUMERADO CON RESPECTO AL LA FECHA TODAY()********//
// Primero obtiene el numerador con relacion a la fecha
// obtiene en forma independiente el numerador
&FECHA = DTOC(TODAY())
&GE06NUME = VAL('1'+(TRIM(SUBSTR(&FECHA,7,2)))+(TRIM(SUBSTR(&FECHA,4,2)))+(TRIM(SUBSTR(&FECHA,1,2))))
&DIA = VAL(TRIM(SUBSTR(&FECHA,1,2)))
&MES = VAL(TRIM(SUBSTR(&FECHA,4,2)))
&ANO = VAL(TRIM(SUBSTR(&FECHA,7,2)))

// PARA CREAR EN FORMA INICIAL EL NUMERADOR Y REALIZAR POSTERIOR ACTUALIZACION INICIAL
NEW --> esta pertenece a una tabla de numerador
GE06DOCU = 'AC'
GE39SECT = 1
GE06NUME = &GE06NUME
&DIAS = 1
DO 'ACTUALIZACION'
WHEN DUPLICATE
DO 'RANGO_DIAS'
ENDNEW

///***RANGOS DE ACTUALIZACION DIARIAS DE LOS INTERESES DEVENGADOS****///
SUB 'RANGO_DIAS'
FOR EACH //GE06CONT
WHERE GE39SECT = 1 //&GE39SECT
WHERE GE06DOCU = 'AC'
&FECHA = TRIM(STR(GE06NUME)) + '0'
&GE06DIA = VAL(TRIM(SUBSTR(&FECHA,6,2)))
&GE06MES = VAL(TRIM(SUBSTR(&FECHA,4,2)))
&GE06ANO = VAL(TRIM(SUBSTR(&FECHA,2,2)))
&DIAS = &DIA - &GE06DIA
MSG('RANGO DIAS')
IF &GE06ANO = &ANO
IF &GE06MES = &MES
IF &GE06DIA = (&DIA - 1)//DIFERENCIA DEL DIA MINIMA
DO 'ACTUALIZACION'
GE06NUME = &GE06NUME
ELSE
IF &DIAS > 1
GE06NUME = &GE06NUME
DO 'ACTUALIZACION'
ENDIF
ENDIF
ELSE
IF &GE06MES < &MES // CUANDO EL MES SEA DISTITO
&GE06DIA = 0
&DIAS = &DIA - &GE06DIA
DO 'ACTUALIZACION'
GE06NUME = &GE06NUME
ENDIF
ENDIF
ELSE
IF &GE06ANO < &ANO
&GE06DIA = 0
&DIAS = &DIA - &GE06DIA
DO 'ACTUALIZACION'
ENDIF
ENDIF
ENDFOR
ENDSUB

SUB 'ACTUALIZACION'
&AS01INTDEV = 0
&AS01SALDO = 0
&I = 0
FOR &I = 1 TO &DIAS
FOR EACH AS01NROSOC, AS01CODEMP
WHERE AS01CODEMP = &coempre
IF AS01APOAC <> 0 // aporte del socio
//----ACTUALIZARA EL IMPORTE
&AS01INTDEV = INT((AS01APOAC * AS01INTAC) / 100) // INT. DEV ---> 3%
&AS01SALDO = INT(AS01APOAC + &AS01INTDEV) // SALDO APORTES
AS01FESAL = Today()
ENDIF
AS01INTDEV = AS01INTDEV + &AS01INTDEV
AS01SALDO = AS01SALDO + &AS01SALDO
ENDFOR
ENDFOR
ENDSUB

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

RE:Ayuda con procedimiento

Publicado por Gabriel (75 intervenciones) el 07/05/2009 19:32:09
Me parece demasiado codigo Fox y poco genexus, pasame bien la definicion de tablas las cuales queres actualizar.-
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 Patricio Ojeda V
Val: 73
Oro
Ha aumentado 1 puesto en GeneXus (en relación al último mes)
Gráfica de GeneXus

RE:Ayuda con procedimiento

Publicado por Patricio Ojeda V (475 intervenciones) el 08/05/2009 01:49:23
Quizas llegué un poco tarde... pero igual me meto en el tema...

Yo lo que hago en este tipo de casos... es tener simplemente una tabla con muy pocos campos... quizas para tu caso bastaria con tener tan solo un atributo fecha y otro atributo Numerico o Caracter de 1 (para usarlo como check)... y en el evento Start tener un procedimiento que consulte si esta realizado el proceso de actualizacion en la fecha respectiva... si esta realizado el proceso no se hace nada, y si el proceso aun no se hace se realiza el proceso de calculo sin olvidarse obviamente de checkear despues en la tabla el atributo en la fecha respectiva...

Espero se entienda,

saludos

Patricio Ojeda V
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar