{ -------------------------------------------------------------------------------- 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" " Adiciona Registro Cancela Operacion" LET int_flag = false CALL cgprad14() COMMAND "Consultar-modificar" " Busca Registro 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" " Actualiza Registro 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