{ ------------------------------------------------------------------ PROGRAMA : CCPRMT0155 OBJETIVO : Capturar, Modificar, Eliminar registros de la Tabla de Tipos de Negocios. PROGRAMADOR : Ing. Juan Soto FECHA REALIZACION : Jueves, 21 Febrero, 2013 ------------------------------------------------------------------ } GLOBALS "ccprgb000.4gl" DEFINE ultimo RECORD LIKE cctb00003.* DEFINE secu_de,secu_a INTEGER DEFINE cctb13 RECORD LIKE cctb00013.*, m_descrip LIKE vetb00012.descrip MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CONNECT to "smarmotech" USER usuarios USING clave CALL ccprmt015() END MAIN FUNCTION ccprmt015() CLEAR SCREEN OPTIONS FORM LINE 9, ERROR LINE 23, COMMENT LINE 21 OPEN FORM ccfmmt015 FROM "ccfmmt015" DISPLAY FORM ccfmmt015 MENU ON ACTION nuevo let int_flag = false CLEAR FORM let int_flag = false CALL ccpcad015() ON ACTION buscar CALL ccpcmf015() ON ACTION Salir EXIT MENU END MENU END FUNCTION FUNCTION ccpcad015() DEFINE hoy DATE ## Captura los datos que va a contener el registro # WHENEVER ERROR CONTINUE LET hoy = today INPUT BY NAME cctb13.tipo_negocio,cctb13.descripcion,cctb13.cond_pago BEFORE INPUT SELECT MAX(a.tipo_negocio) INTO cctb13.tipo_negocio FROM cctb00013 a IF cctb13.tipo_negocio IS NULL THEN LET cctb13.tipo_negocio=1 END IF LET cctb13.tipo_negocio = cctb13.tipo_negocio + 1 DISPLAY BY NAME cctb13.tipo_negocio AFTER FIELD tipo_negocio IF cctb13.tipo_negocio IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD tipo_negocio END IF SELECT a.* FROM cctb00013 a WHERE a.tipo_negocio = cctb13.tipo_negocio AND a.status_t IS NULL IF STATUS != NOTFOUND THEN LET numero_msg = 12 CALL msg(numero_msg) NEXT FIELD tipo_negocio END IF AFTER FIELD cond_pago IF cctb13.cond_pago IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cond_pago END IF SELECT a.descrip INTO m_descrip FROM vetb00012 a WHERE a.cond_pago = cctb13.cond_pago AND a.status_t IS NULL IF STATUS = NOTFOUND THEN LET numero_msg = 12 CALL msg(numero_msg) NEXT FIELD cond_pago END IF DISPLAY BY NAME m_descrip AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF INSERT INTO cctb00013 (tipo_negocio,descripcion,cond_pago,us_crea, fech_crea) VALUES (cctb13.tipo_negocio,cctb13.descripcion, cctb13.cond_pago, usuarios,GETDATE()) LET numero_msg = 1 CALL msg(numero_msg) CLEAR FORM #NEXT FIELD tipo_negocio END INPUT END FUNCTION FUNCTION ccpcmf015() ## Aqui se prepara para la captura del criterio de seleccion #WHENEVER ERROR CONTINUE CONSTRUCT BY NAME criterio ON a.tipo_negocio,a.descripcion IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET SELEC = " SELECT a.*", " FROM cctb00013 a where ", " a.status_t is null and ", criterio clipped, " ORDER BY a.tipo_negocio" PREPARE busca FROM selec CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF DECLARE datos SCROLL CURSOR WITH HOLD FOR busca OPEN datos FETCH FIRST datos INTO cctb13.* IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF INITIALIZE m_descrip TO NULL SELECT a.descrip INTO m_descrip FROM vetb00012 a WHERE a.cond_pago = cctb13.cond_pago AND a.status_t IS NULL DISPLAY BY NAME cctb13.tipo_negocio,cctb13.descripcion, cctb13.cond_pago,m_descrip MENU "OPCIONES " COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT datos INTO cctb13.* IF STATUS = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) NEXT OPTION "anterior" END IF CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF INITIALIZE m_descrip TO NULL SELECT a.descrip INTO m_descrip FROM vetb00012 a WHERE a.cond_pago = cctb13.cond_pago AND a.status_t IS NULL DISPLAY BY NAME cctb13.tipo_negocio,cctb13.descripcion, cctb13.cond_pago,m_descrip COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS datos INTO cctb13.* IF STATUS = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) NEXT OPTION "siguiente" END IF CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF INITIALIZE m_descrip TO NULL SELECT a.descrip INTO m_descrip FROM vetb00012 a WHERE a.cond_pago = cctb13.cond_pago AND a.status_t IS NULL DISPLAY BY NAME cctb13.tipo_negocio,cctb13.descripcion, cctb13.cond_pago,m_descrip COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST datos INTO cctb13.* INITIALIZE m_descrip TO NULL SELECT a.descrip INTO m_descrip FROM vetb00012 a WHERE a.cond_pago = cctb13.cond_pago AND a.status_t IS NULL DISPLAY BY NAME cctb13.tipo_negocio,cctb13.descripcion, cctb13.cond_pago,m_descrip LET numero_msg = 5 CALL msg(numero_msg) NEXT OPTION "siguiente" COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH LAST datos INTO cctb13.* INITIALIZE m_descrip TO NULL SELECT a.descrip INTO m_descrip FROM vetb00012 a WHERE a.cond_pago = cctb13.cond_pago AND a.status_t IS NULL DISPLAY BY NAME cctb13.tipo_negocio,cctb13.descripcion, cctb13.cond_pago,m_descrip LET numero_msg = 4 CALL msg(numero_msg) NEXT OPTION "anterior" COMMAND "Escoger" " Actualiza Registro Cancela Operacion" INPUT BY NAME cctb13.descripcion,cctb13.cond_pago WITHOUT DEFAULTS AFTER FIELD cond_pago IF cctb13.cond_pago IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cond_pago END IF SELECT a.descrip INTO m_descrip FROM vetb00012 a WHERE a.cond_pago = cctb13.cond_pago AND a.status_t IS NULL IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD cond_pago END IF DISPLAY BY NAME m_descrip END INPUT UPDATE cctb00013 SET descripcion = cctb13.descripcion, cond_pago = cctb13.cond_pago, us_mod = usuarios, fech_mod = GETDATE() WHERE cctb00013.tipo_negocio = cctb13.tipo_negocio LET numero_msg = 13 CALL msg(numero_msg) COMMAND KEY ("L") "eLiminar" UPDATE cctb00013 SET status_t = "E", us_mod = ususarios, fech_mod = getdate() WHERE cctb000013.tipo_negocio = cctb13.tipo_negocio LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" "Retorna al menu anterior" CLEAR FORM EXIT MENU END MENU END FUNCTION