{ ----------------------------------------------------------------------------- PROGRAMA : CGPRMT009 OBJETIVO : Mantenimiento Codigos Cronologicos de Beneficiarios de los Cheques de Pago. REALIZADO POR : Ing. Juan F. Soto FECHA : Diciembre 4, 1995. ----------------------------------------------------------------------------- } GLOBALS "cgprgb000.4gl" FUNCTION cgprmt009() OPTIONS FORM LINE 8, ERROR LINE 24, COMMENT LINE 22, PROMPT LINE 23 CALL pantalla() OPEN FORM cgfmmt009 FROM "cgfmmt009" DISPLAY FORM cgfmmt009 DISPLAY "cgprmt009" AT 4,3 DISPLAY "Cronologico Beneficiarios" AT 6,25 MENU "OPCION" COMMAND "Adicionar" " Adiciona Registro Cancela Operacion" CALL cgpcad009() COMMAND "Consultar-modificar" " Busca Registro Cancela Operacion" CALL cgpcmf009() COMMAND "Salir" EXIT MENU END MENU END FUNCTION FUNCTION cgpcad009() DEFINE longi SMALLINT INITIALIZE cronologico.* TO NULL INPUT BY NAME cronologico.* WITHOUT DEFAULTS AFTER FIELD cod_cro IF cronologico.cod_cro is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cod_cro END IF SELECT unique a.* INTO cronologico.* FROM cgtb00031 a WHERE a.cod_cro = cronologico.cod_cro IF status != notfound THEN LET numero_msg = 12 CALL msg(numero_msg) DISPLAY BY NAME cronologico.* INITIALIZE cronologico.* TO NULL NEXT FIELD cod_cro END IF LET longi = LENGTH(cronologico.cod_cro) IF longi < 8 THEN LET numero_msg = 77 CALL msg(numero_msg) NEXT FIELD cod_cro END IF AFTER FIELD beneficiario IF cronologico.beneficiario is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD beneficiario END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF INSERT INTO cgtb00031 VALUES(cronologico.*) UPDATE cgtb00031 set us_crea = user, fech_crea = current WHERE cod_cro = cronologico.cod_cro LET numero_msg = 1 CALL msg(numero_msg) END INPUT END FUNCTION ## Funcion para consultar/modificar una entrada de diario FUNCTION cgpcmf009() ## SE PREPARA EL CRITERIO PARA CONSULTAR/MODIFICAR UN REGISTRO CONSTRUCT BY NAME CRITERIO ON cod_cro,beneficiario IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE CLEAR FORM RETURN END IF LET selec = "SELECT UNIQUE * FROM cgtb00031 WHERE ",criterio clipped, " ORDER BY cod_cro" PREPARE busca FROM selec DECLARE datos SCROLL CURSOR FOR busca OPEN datos FETCH FIRST datos INTO cronologico.* IF status = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF DISPLAY BY NAME cronologico.* LABEL vuelve: MENU "OPCION" COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT datos INTO cronologico.* IF status = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME cronologico.* COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS datos INTO cronologico.* IF status = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME cronologico.* COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST datos INTO cronologico.* IF status = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME cronologico.* COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH LAST datos INTO cronologico.* IF status = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME cronologico.* COMMAND "Escoger" " Actualiza Registro Cancela Operacion" INPUT BY NAME cronologico.beneficiario WITHOUT DEFAULTS AFTER FIELD beneficiario IF cronologico.beneficiario is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD beneficiario END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF UPDATE cgtb00031 set beneficiario = cronologico.beneficiario, us_mod = user, fech_mod = current WHERE cod_cro = cronologico.cod_cro EXIT INPUT END INPUT ## AQUI SE REALIZA LA ANULACION DE UN REGISTRO COMMAND KEY ("N") "aNular" UPDATE cgtb00031 set status_t = "E", us_mod = user, fech_mod = current WHERE cod_cro = cronologico.cod_cro COMMAND "Retornar" CLEAR FORM EXIT MENU END MENU END FUNCTION