Files
MBS/PROYECTO/cgdir/cgprmt014.4gl
T

185 lines
4.9 KiB
Plaintext

{
--------------------------------------------------------------------------------
PROGRAMA : CGPRMT014
OBJETIVO : ADICIONAR, CONSULTAR-MODIFICAR, ELIMINAR CUENTAS DE BANCOS DE
LA TABLA CGTB00012
PROGRAMADOR : JUAN F. SOTO
FECHA : OCTUBRE 24, 1995.
-------------------------------------------------------------------------------
}
GLOBALS
"cgprgb000.4gl"
DEFINE bancos RECORD LIKE cgtb00012.*
DEFINE nombre_cta CHAR(30)
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(4) RETURNING impresor
CONNECT to "smarmotech" USER usuarios USING clave
SELECT a.* INTO p_compania.* FROM companias a
CALL cgprmt014()
END MAIN
FUNCTION cgprmt014()
OPTIONS
FORM LINE 8,
ERROR LINE 24
OPEN FORM cgfmmt014 FROM "cgfmmt014"
DISPLAY FORM cgfmmt014
DISPLAY "cgprmt014" AT 4,4
DISPLAY "Cuentas Bancarias De La Empresa" AT 6,25
MENU "OPCION"
COMMAND "Adicionar" "<Esc> Adiciona Registro <Ctrl-C> Cancela Operacion"
LET int_flag = false
CALL cgprad14()
COMMAND "Consultar-modificar"
"<Esc> Busca Registro <Ctrl-C> Cancela Operacion"
LET int_flag = false
CALL cgprmo14()
COMMAND "Salir" "Retorna Al Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION cgprad14()
INPUT BY NAME bancos.*
AFTER FIELD cuenta_no
IF bancos.cuenta_no IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cuenta_no
END IF
SELECT descripcion INTO nombre_cta
FROM cgtb00001
WHERE cuenta_no = bancos.cuenta_no and
status_t is null
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cuenta_no
END IF
DISPLAY BY NAME nombre_cta
SELECT cuenta_no FROM cgtb00012
WHERE cuenta_no = bancos.cuenta_no
IF STATUS != NOTFOUND THEN
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD cuenta_no
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
CLEAR FORM
RETURN
END IF
EXIT INPUT
END INPUT
# Actualizacion de la tabla que controla la secuencia por banco
INSERT INTO cgtb00012 VALUES (0,bancos.cuenta_no,bancos.nombre_bco,
bancos.direccion,bancos.cuenta_bank,
bancos.codigo_1,bancos.codigo_2,null,
SUSER_SNAME(),GETDATE(),null,null)
LET numero_msg = 1
CALL msg(numero_msg)
CLEAR FORM
END FUNCTION
FUNCTION cgprmo14()
CLEAR FORM
CONSTRUCT BY NAME criterio ON cuenta_no
LET selec = "SELECT *FROM cgtb00012 ",
"WHERE ",criterio clipped,
" ORDER BY cuenta_no"
PREPARE comando FROM selec
DECLARE busca SCROLL CURSOR FOR comando
OPEN busca
FETCH FIRST busca INTO bancos.*
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME bancos.*
MENU "OPCION"
COMMAND "Siguiente" "Ver Siguiente Registro Cumple La Condicion"
FETCH NEXT busca INTO bancos.*
IF status = notfound THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME bancos.*
COMMAND "Anterior" "Ver Registro Anterior Cumpla la condicion"
FETCH PREVIOUS busca INTO bancos.*
IF status = notfound THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME bancos.*
COMMAND "Primero" "Ver Primer Registro Cumpla la condicion"
FETCH FIRST busca INTO bancos.*
LET numero_msg = 5
CALL msg(numero_msg)
DISPLAY BY NAME bancos.*
COMMAND "Ultimo" "Ver Ultimo Registro Cumpla la condicion"
FETCH LAST busca INTO bancos.*
LET numero_msg = 4
CALL msg(numero_msg)
DISPLAY BY NAME bancos.*
COMMAND "Escoger" "<Esc> Actualiza Registro <Ctrl-C> Cancela Operacion"
SELECT descripcion INTO nombre_cta
FROM cgtb00001
WHERE cuenta_no = bancos.cuenta_no and
status_t is null
DISPLAY BY NAME nombre_cta
INPUT BY NAME bancos.* WITHOUT DEFAULTS
BEFORE FIELD cuenta_no
NEXT FIELD nombre_bco
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
CLEAR FORM
RETURN
END IF
EXIT INPUT
END INPUT
UPDATE cgtb00012 set cgtb00012.nombre_bco = bancos.nombre_bco,
cgtb00012.direccion = bancos.direccion,
cgtb00012.cuenta_bank = bancos.cuenta_bank,
cgtb00012.codigo_1 = bancos.codigo_1
WHERE cuenta_no = bancos.cuenta_no
UPDATE cgtb00012 set us_mod = SUSER_SNAME(),
fech_mod = GETDATE()
WHERE cuenta_no = bancos.cuenta_no
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND "Retornar" "Retorna Al Menu Anterior"
EXIT MENU
END MENU
END FUNCTION