{ ------------------------------------------------------------------------------ PROGRAMA : CGPRMT008 OBJETIVO : Mantenimiento de Cuentas para el calculo de BENEFICIOS NETO DEL REPORTE CGPRRP008(MAYOR ANALITICO) PROGRAMADOR : Ing. Juan F. Soto FECHA REALIZACION : Noviembre 9, 1995. ------------------------------------------------------------------------------ } GLOBALS "cgprgb000.4gl" DEFINE b_cuentas RECORD LIKE cgtb00014.* FUNCTION cgprmt008() OPTIONS FORM LINE 9, ERROR LINE 24, COMMENT LINE 23 CALL pantalla() OPEN FORM cgfmmt008 FROM "cgfmmt008" DISPLAY FORM cgfmmt008 CLEAR FORM DISPLAY "cgprmt008" AT 4,3 DISPLAY "Maestra Cuentas Beneficios Neto" AT 6,23 MENU "OPCION" COMMAND "Adicionar" " Adiciona Registro Cancela Operacion" LET int_flag = false CALL cgpcad08() COMMAND "Consultar-modificar" " Busca Registro Cancela Operacion" CALL cgpcmod08() COMMAND "Salir" EXIT MENU END MENU END FUNCTION FUNCTION cgpcad08() # Captura de informacion INITIALIZE b_cuentas.* TO NULL INPUT BY NAME b_cuentas.* WITHOUT DEFAULTS ATTRIBUTE (BOLD) AFTER FIELD cuenta_no IF b_cuentas.cuenta_no is null THEN LET numero_msg = 16 CALL msg(numero_msg) END IF SELECT descripcion INTO nombre FROM cgtb00001 WHERE cuenta_no = b_cuentas.cuenta_no # Chequeo del registro si esta en la tabla de cuentas contables IF status = notfound THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD cuenta_no END IF # Busca la cuenta en la tabla cgtb00014 para saber si existe SELECT * INTO b_cuentas.* FROM cgtb00014 WHERE cuenta_no = b_cuentas.cuenta_no IF status != notfound THEN SELECT descripcion INTO nombre FROM cgtb00001 WHERE cuenta_no = b_cuentas.cuenta_no DISPLAY BY NAME b_cuentas.*,nombre LET numero_msg = 12 CALL msg(numero_msg) NEXT FIELD cuenta_no END IF DISPLAY BY NAME nombre AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF INSERT INTO cgtb00014 values (b_cuentas.*) UPDATE cgtb00014 set us_crea = user, fech_crea = current WHERE cuenta_no = b_cuentas.cuenta_no CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF LET numero_msg = 1 CALL msg(numero_msg) INITIALIZE b_cuentas.* TO NULL CLEAR FORM NEXT FIELD cuenta_no EXIT INPUT END INPUT END FUNCTION FUNCTION cgpcmod08() DEFINE id INTEGER # Captura del criterio de seleccion CLEAR FORM CONSTRUCT BY NAME criterio ON cgtb00014.* LET selec2 = "SELECT *,rowid FROM cgtb00014 WHERE ", criterio clipped," and status_t is null ", " ORDER BY 1" PREPARE comando FROM selec2 DECLARE busca SCROLL CURSOR FOR comando OPEN busca FETCH FIRST busca INTO b_cuentas.*,id IF status = notfound THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF SELECT descripcion INTO nombre FROM cgtb00001 WHERE cuenta_no = b_cuentas.cuenta_no DISPLAY BY NAME b_cuentas.*,nombre MENU "OPCION" COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT busca INTO b_cuentas.*,id IF status = notfound THEN LET numero_msg = 4 CALL msg(numero_msg) END IF SELECT descripcion INTO nombre FROM cgtb00001 WHERE cuenta_no = b_cuentas.cuenta_no DISPLAY BY NAME b_cuentas.*,nombre COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS busca INTO b_cuentas.*,id IF status = notfound THEN LET numero_msg = 5 CALL msg(numero_msg) END IF SELECT descripcion INTO nombre FROM cgtb00001 WHERE cuenta_no = b_cuentas.cuenta_no DISPLAY BY NAME b_cuentas.*,nombre COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST busca INTO b_cuentas.*,id LET numero_msg = 5 CALL msg(numero_msg) SELECT descripcion INTO nombre FROM cgtb00001 WHERE cuenta_no = b_cuentas.cuenta_no DISPLAY BY NAME b_cuentas.*,nombre COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH FIRST busca INTO b_cuentas.*,id LET numero_msg = 4 CALL msg(numero_msg) SELECT descripcion INTO nombre FROM cgtb00001 WHERE cuenta_no = b_cuentas.cuenta_no DISPLAY BY NAME b_cuentas.*,nombre { COMMAND "Escoger" " Actualiza Registro Cancela Operacion" IF b_cuentas.status_t = "E" THEN LET numero_msg = 39 CALL msg(numero_msg) RETURN END IF INPUT BY NAME b_cuentas.* WITHOUT DEFAULTS ATTRIBUTE (BOLD) AFTER FIELD cuenta_no IF b_cuentas.cuenta_no is null THEN LET numero_msg = 16 CALL msg(numero_msg) END IF SELECT descripcion INTO nombre FROM cgtb00001 WHERE cuenta_no = b_cuentas.cuenta_no # Chequeo del registro si esta en la tabla de cuentas contables IF status = notfound THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD cuenta_no END IF DISPLAY BY NAME nombre AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF EXIT INPUT END INPUT UPDATE cgtb00014 set cgtb00014.* = b_cuentas.* WHERE rowid = id UPDATE cgtb00014 set us_mod = user, fech_mod = current WHERE rowid = id CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF LET numero_msg = 13 CALL msg(numero_msg) } COMMAND KEY("L") "eLiminar" DELETE FROM cgtb00014 where rowid = id LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" EXIT MENU END MENU END FUNCTION