{ ------------------------------------------------------------------ PROGRAMA : VEPRMT105 OBJETIVO : Capturar, Modificar, Eliminar registros de la Tabla de Datos Generales o Basicos de Clientes PROGRAMADOR : Lic. Abner Montalvo Z. FECHA REALIZACION : Diciembre 7, 1992. ------------------------------------------------------------------ } GLOBALS "veprgb000.4gl" DEFINE vetb40 RECORD LIKE vetb00040.* FUNCTION veprmt105() CLEAR SCREEN OPTIONS FORM LINE 9, ERROR LINE 23, MESSAGE LINE 24, COMMENT LINE 21 OPEN FORM vefmmt105 FROM "vefmmt105" DISPLAY FORM vefmmt105 CALL pantalla() DISPLAY "veprmt105" AT 4,3 DISPLAY "Datos Complentario del Cliente" AT 6,25 MENU "OPCIONES" COMMAND "Adicionar" " Adiciona Registro Cancela Operacion" HELP 5 LET int_flag = FALSE CLEAR FORM CALL vepcad105() COMMAND "Consultar-modificar" " Realiza Busqueda Cancela Operacion" HELP 6 LET int_flag = FALSE CALL vepcmf105() COMMAND "Salir" "Retorna Menu Anterior" EXIT MENU END MENU END FUNCTION FUNCTION vepcad105() WHENEVER ERROR CONTINUE INPUT BY NAME vetb40.* AFTER FIELD sec_cliente IF vetb40.sec_cliente IS NULL OR vetb40.sec_cliente = 0 THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD sec_cliente END IF SELECT a.* INTO cliente_bas.* FROM vetb00004 a WHERE a.tipo_cliente = vetb40.tipo_cliente AND a.sec_cliente = vetb40.sec_cliente AND a.status_t IS NULL IF STATUS = NOTFOUND THEN LET numero_msg = 12 CALL msg(numero_msg) NEXT FIELD tipo_cliente END IF DISPLAY BY NAME cliente_bas.nombre AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF INSERT INTO vetb00040 VALUES(vetb40.*) IF STATUS < 0 THEN LET numero_msg = 12 CALL msg(numero_msg) LET STATUS = 0 NEXT FIELD tipo_cliente END IF UPDATE vetb00040 SET (us_crea,fech_crea) = (USER,CURRENT) WHERE @tipo_cliente=vetb40.tipo_cliente AND @sec_cliente=vetb40.sec_cliente LET numero_msg = 1 CALL msg(numero_msg) EXIT INPUT END INPUT END FUNCTION FUNCTION vepcmf105() CONSTRUCT criterio ON a.tipo_cliente,a.sec_cliente,a.tipo_negocio, a.tipo_cte,a.frecuencia_visita,a.tipo_pago FROM tipo_cliente,sec_cliente,tipo_negocio, tipo_cte,frecuencia_visita,tipo_pago IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET selec = "SELECT a.*,b.nombre FROM vetb00040 a, vetb00004 b ", "WHERE a.tipo_cliente=b.tipo_cliente AND a.sec_cliente=b.sec_cliente ", " AND a.status_t IS NULL AND b.status_t IS NULL AND ",criterio CLIPPED, " ORDER BY 1,2 " PREPARE comando FROM selec DECLARE busca SCROLL CURSOR FOR comando OPEN busca FETCH FIRST busca INTO vetb40.*,cliente_bas.nombre IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF DISPLAY BY NAME vetb40.*,cliente_bas.nombre MENU "Opciones" COMMAND "Siguiente" "Ver Sigte. Registro Que Satisfaga Condicion" FETCH NEXT busca INTO vetb40.*,cliente_bas.nombre IF STATUS = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME vetb40.*,cliente_bas.nombre COMMAND "Anterior" "Ver Registro Anterior Que Satisfaga Condicion" FETCH PREVIOUS busca INTO vetb40.*,cliente_bas.nombre IF STATUS = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME vetb40.*,cliente_bas.nombre COMMAND "Primero" "Ver Primer Registro Que Satisfaga Condicion" FETCH FIRST busca INTO vetb40.*,cliente_bas.nombre LET numero_msg = 5 CALL msg(numero_msg) DISPLAY BY NAME vetb40.*,cliente_bas.nombre COMMAND "Ultimo" "Ver Primer Registro Que Satisfaga Condicion" FETCH LAST busca INTO vetb40.*,cliente_bas.nombre LET numero_msg = 4 CALL msg(numero_msg) DISPLAY BY NAME vetb40.*,cliente_bas.nombre COMMAND "Escoger" " Actualizar Informacion Cancela Operacion" INPUT BY NAME vetb40.tipo_negocio THRU vetb40.fech_mod WITHOUT DEFAULTS IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF UPDATE vetb00040 SET (tipo_negocio,tipo_cte,frecuencia_visita, tipo_pago,us_mod,fech_mod) = (vetb40.tipo_negocio,vetb40.tipo_cte, vetb40.frecuencia_visita,vetb40.tipo_pago, USER,CURRENT) WHERE @tipo_cliente = vetb40.tipo_cliente AND @sec_cliente = vetb40.sec_cliente LET numero_msg = 13 CALL msg(numero_msg) COMMAND KEY ("L") "eLiminar" "Eliminar Registro Que Satisfaga Condicion" UPDATE vetb00040 SET (status_t,us_mod,fech_mod) = ("E",USER,CURRENT) WHERE @tipo_cliente = vetb40.tipo_cliente AND @sec_cliente = vetb40.sec_cliente LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" "Retornar Al Menu Anterior" EXIT MENU END MENU END FUNCTION