{ ------------------------------------------------------------------ PROGRAMA : VEPRMT104 OBJETIVO : Capturar, Modificar, Eliminar registros de la Tabla de Descuentos de Clientes PROGRAMADOR : Lic. Abner Montalvo Z. FECHA REALIZACION : Diciembre 7, 1992. ------------------------------------------------------------------ } GLOBALS "veprgb000.4gl" FUNCTION veprmt104() # WHENEVER ERROR CONTINUE CLEAR SCREEN OPTIONS FORM LINE 9, ERROR LINE 23, HELP FILE "vepray000.exe", HELP KEY CONTROL-W, MESSAGE LINE 24, COMMENT LINE 21 OPEN FORM vefmmt104 FROM "vefmmt104" DISPLAY FORM vefmmt104 CALL pantalla() CALL ayuda() DISPLAY "veprmt104" AT 4,3 DISPLAY "Descuentos" AT 6,34 MENU "OPCIONES" COMMAND "Adicionar" " Adiciona Registro Cancela Operacion" HELP 5 LET int_flag = FALSE CLEAR FORM CALL vepcad104() COMMAND "Consultar-modificar" " Realiza Busqueda Cancela Operacion" HELP 6 LET int_flag = FALSE CALL vepcmf104() COMMAND "Salir" "Retorna Menu Anterior" EXIT MENU END MENU END FUNCTION FUNCTION vepcad104() ## Captura los datos que va a contener el registro # WHENEVER ERROR CONTINUE MESSAGE "" LET int_flag = false INPUT BY NAME cliente_des.* ON KEY (CONTROL-W) CASE WHEN INFIELD (tipo_cliente) LET cliente_dir.tipo_cliente = cliente_des.tipo_cliente LET cliente_dir.sec_cliente = cliente_des.sec_cliente CALL consulta_clientes() IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) NEXT FIELD tipo_cliente END IF IF NOT int_flag THEN LET cliente_des.tipo_cliente = cliente_dir.tipo_cliente LET cliente_des.sec_cliente = cliente_dir.sec_cliente DISPLAY BY NAME cliente_dir.tipo_cliente, cliente_dir.sec_cliente DISPLAY descrip1 TO nombre NEXT FIELD tipo_desc END IF LET int_flag = FALSE WHEN INFIELD (sec_cliente) LET cliente_dir.tipo_cliente = cliente_des.tipo_cliente LET cliente_dir.sec_cliente = cliente_des.sec_cliente CALL consulta_clientes() IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) NEXT FIELD tipo_cliente END IF IF NOT int_flag THEN LET cliente_des.tipo_cliente = cliente_dir.tipo_cliente LET cliente_des.sec_cliente = cliente_dir.sec_cliente DISPLAY BY NAME cliente_dir.tipo_cliente, cliente_dir.sec_cliente DISPLAY descrip1 TO nombre NEXT FIELD tipo_desc END IF LET int_flag = FALSE WHEN INFIELD (tipo_desc) CALL consulta_descuentos() IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF IF NOT int_flag THEN DISPLAY descuento.tipo_desc TO tipo_desc DISPLAY descrip1 TO descrip NEXT FIELD tipo_desc END IF LET int_flag = FALSE END CASE ## Verifica que el codigo no exista en la tabla de datos basicos de clientes. ## Si existe, entonces despliega los datos del registro existente. AFTER FIELD tipo_cliente IF cliente_des.tipo_cliente is null or cliente_des.tipo_cliente = 0 then LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD tipo_cliente END IF AFTER FIELD sec_cliente IF cliente_des.sec_cliente is null or cliente_des.sec_cliente = 0 then LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD sec_cliente ELSE SELECT nombre, status_t INTO descrip1, status_reg FROM vetb00004 WHERE tipo_cliente = cliente_des.tipo_cliente AND sec_cliente = cliente_des.sec_cliente AND status_t IS NULL IF status >= 0 THEN IF status != NOTFOUND THEN IF status_reg = "E" THEN LET numero_msg = 69 CALL msg(numero_msg) NEXT FIELD tipo_cliente END IF DISPLAY descrip1 TO nombre ELSE LET numero_msg = 70 CALL msg(numero_msg) NEXT FIELD tipo_cliente END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF END IF AFTER FIELD tipo_desc IF cliente_des.tipo_desc IS NULL OR cliente_des.tipo_desc = 0 THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF SELECT status_t, descrip INTO status_reg, descrip1 FROM vetb00013 WHERE tipo_desc = cliente_des.tipo_desc IF status >= 0 THEN IF status != NOTFOUND THEN IF status_reg = "E" THEN LET numero_msg = 72 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF DISPLAY descrip1 TO descrip ELSE LET numero_msg = 71 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF SELECT * INTO cliente_des.* FROM vetb00007 WHERE tipo_cliente = cliente_des.tipo_cliente AND sec_cliente = cliente_des.sec_cliente AND tipo_desc = cliente_des.tipo_desc IF status >= 0 THEN IF status != NOTFOUND THEN IF cliente_des.status_t = "E" THEN LET numero_msg = 36 CALL msg(numero_msg) NEXT FIELD tipo_cliente END IF DISPLAY BY NAME cliente_des.* LET numero_msg = 12 CALL msg(numero_msg) NEXT FIELD tipo_cliente END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE CALL ayuda() RETURN END IF IF cliente_des.tipo_cliente is null or cliente_des.tipo_cliente = 0 then LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD tipo_cliente END IF # Verifica si el cliente y el registro existen. # Si existe, despliega los datos del mismo IF cliente_des.sec_cliente is null or cliente_des.sec_cliente = 0 then LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD sec_cliente ELSE SELECT nombre, status_t INTO descrip1, status_reg FROM vetb00004 WHERE tipo_cliente = cliente_des.tipo_cliente AND sec_cliente = cliente_des.sec_cliente AND status_t IS NULL IF status >= 0 THEN IF status != NOTFOUND THEN IF status_reg = "E" THEN LET numero_msg = 69 CALL msg(numero_msg) NEXT FIELD tipo_cliente END IF DISPLAY descrip1 TO nombre ELSE LET numero_msg = 70 CALL msg(numero_msg) NEXT FIELD tipo_cliente END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF END IF IF cliente_des.tipo_desc IS NULL OR cliente_des.tipo_desc = 0 THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF SELECT status_t, descrip INTO status_reg, descrip1 FROM vetb00013 WHERE tipo_desc = cliente_des.tipo_desc IF status >= 0 THEN IF status != NOTFOUND THEN IF status_reg = "E" THEN LET numero_msg = 72 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF DISPLAY descrip1 TO descrip ELSE LET numero_msg = 71 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF SELECT * INTO cliente_des.* FROM vetb00007 WHERE tipo_cliente = cliente_des.tipo_cliente AND sec_cliente = cliente_des.sec_cliente AND tipo_desc = cliente_des.tipo_desc IF status >= 0 THEN IF status != NOTFOUND THEN IF cliente_des.status_t = "E" THEN LET numero_msg = 36 CALL msg(numero_msg) NEXT FIELD tipo_cliente END IF DISPLAY BY NAME cliente_des.* LET numero_msg = 12 CALL msg(numero_msg) NEXT FIELD tipo_cliente END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF # Valida que el codigo del cliente_des no sea cero. Si no es cero, adiciona el # registro en la tabla, de lo contrario, presenta mensaje de error y acepta # el codigo de nuevo. IF cliente_des.tipo_cliente is null OR cliente_des.tipo_cliente = 0 OR cliente_des.sec_cliente is null OR cliente_des.sec_cliente = 0 OR cliente_des.tipo_desc is null OR cliente_des.tipo_desc = 0 THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD tipo_cliente ELSE INSERT INTO vetb00007 VALUES (cliente_des.tipo_cliente, cliente_des.sec_cliente, cliente_des.tipo_desc, null, USER, CURRENT, null, null) # Verifica el Status que retorna luego de insertar el registro en la tabla. # Si el Status es diferente de cero quiere decir que hubo problemas durante # la creacion del registro, entonces despliega un mensaje . CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF LET numero_msg = 1 CALL msg(numero_msg) NEXT FIELD tipo_cliente END IF AFTER FIELD fech_mod EXIT INPUT END INPUT END FUNCTION FUNCTION vepcmf104() # WHENEVER ERROR CONTINUE MESSAGE "" LET int_flag = false ## Aqui se prepara para la captura del criterio de seleccion LET descrip1 = NULL DISPLAY descrip1 TO nombre DISPLAY descrip1 TO descrip CONSTRUCT criterio ON vetb00007.* FROM vetb00007.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE CALL ayuda() RETURN END IF LET SELEC = " SELECT UNIQUE * FROM vetb00007 where ", " status_t is null and ", criterio clipped, " ORDER BY 1,2,3" PREPARE busca FROM selec CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF DECLARE datos SCROLL CURSOR FOR busca OPEN datos FETCH FIRST datos INTO cliente_des.* IF status >= 0 THEN IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF DISPLAY BY NAME cliente_des.* LET cliente_dir.tipo_cliente = cliente_des.tipo_cliente LET cliente_dir.sec_cliente = cliente_des.sec_cliente CALL busca_nombre_cliente() CALL busca_nombre_descuento() MENU "OPCIONES " COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT datos INTO cliente_des.* IF STATUS = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME cliente_des.* LET cliente_dir.tipo_cliente = cliente_des.tipo_cliente LET cliente_dir.sec_cliente = cliente_des.sec_cliente CALL busca_nombre_cliente() CALL busca_nombre_descuento() COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS datos INTO cliente_des.* IF STATUS = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME cliente_des.* LET cliente_dir.tipo_cliente = cliente_des.tipo_cliente LET cliente_dir.sec_cliente = cliente_des.sec_cliente CALL busca_nombre_cliente() CALL busca_nombre_descuento() COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST datos INTO cliente_des.* DISPLAY BY NAME cliente_des.* LET cliente_dir.tipo_cliente = cliente_des.tipo_cliente LET cliente_dir.sec_cliente = cliente_des.sec_cliente CALL busca_nombre_cliente() CALL busca_nombre_descuento() LET numero_msg = 5 CALL msg(numero_msg) COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH LAST datos INTO cliente_des.* DISPLAY BY NAME cliente_des.* LET cliente_dir.tipo_cliente = cliente_des.tipo_cliente LET cliente_dir.sec_cliente = cliente_des.sec_cliente CALL busca_nombre_cliente() CALL busca_nombre_descuento() LET numero_msg = 4 CALL msg(numero_msg) COMMAND "Escoger" " Actualiza Registro Cancela Operacion" LET idx = cliente_des.tipo_desc IF cliente_des.status_t= "E" THEN LET numero_msg= 36 CALL msg(numero_msg) RETURN END IF INPUT BY NAME cliente_des.tipo_desc, cliente_des.us_mod, cliente_des.fech_mod WITHOUT DEFAULTS ON KEY (CONTROL-W) CASE WHEN INFIELD (tipo_desc) CALL consulta_descuentos() IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF IF NOT int_flag THEN SELECT status_t INTO status_reg FROM vetb00007 WHERE tipo_cliente = cliente_des.tipo_cliente AND sec_cliente = cliente_des.sec_cliente AND tipo_desc = cliente_des.tipo_desc IF status >= 0 THEN IF status != NOTFOUND THEN IF status_reg = "E" THEN LET numero_msg = 36 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF LET numero_msg = 92 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF DISPLAY descuento.tipo_desc TO tipo_desc DISPLAY descrip1 TO descrip END IF LET int_flag = FALSE END CASE AFTER FIELD tipo_desc IF cliente_des.tipo_desc IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF SELECT status_t INTO status_reg FROM vetb00007 WHERE tipo_cliente = cliente_des.tipo_cliente AND sec_cliente = cliente_des.sec_cliente AND tipo_desc = cliente_des.tipo_desc IF status >= 0 THEN IF status != NOTFOUND THEN IF status_reg = "E" THEN LET numero_msg = 36 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF LET numero_msg = 92 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE CALL ayuda() RETURN END IF IF cliente_des.tipo_desc IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF SELECT status_t INTO status_reg FROM vetb00007 WHERE tipo_cliente = cliente_des.tipo_cliente AND sec_cliente = cliente_des.sec_cliente AND tipo_desc = cliente_des.tipo_desc IF status >= 0 THEN IF status != NOTFOUND THEN IF status_reg = "E" THEN LET numero_msg = 36 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF LET numero_msg = 92 CALL msg(numero_msg) NEXT FIELD tipo_desc END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF AFTER FIELD fech_mod EXIT INPUT END INPUT #### Verifica si el usuario presiono la tecla IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE CALL ayuda() RETURN END IF IF idx != cliente_des.tipo_desc THEN UPDATE vetb00007 SET tipo_desc = cliente_des.tipo_desc, us_mod = USER, fech_mod = CURRENT WHERE tipo_cliente = cliente_des.tipo_cliente AND sec_cliente = cliente_des.sec_cliente AND tipo_desc = idx LET numero_msg = 13 CALL msg(numero_msg) END IF COMMAND KEY ("L") "eLiminar" "Elimina registro que esta en la pantalla" UPDATE vetb00007 SET status_t ="E" WHERE tipo_cliente = cliente_des.tipo_cliente AND sec_cliente = cliente_des.sec_cliente AND tipo_desc = cliente_des.tipo_desc LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" "Retorna al menu anterior" CALL ayuda() EXIT MENU END MENU END FUNCTION FUNCTION busca_nombre_descuento() # Esta funcion busca el nombre del descuento y lo despliega en pantalla # Esta funcion es valida solamente para la consulta-modificacion. SELECT i.descrip, i.status_t INTO descrip1, status_reg FROM vetb00013 i WHERE i.tipo_desc = cliente_des.tipo_desc IF status >= 0 THEN IF status = NOTFOUND THEN LET numero_msg = 71 CALL msg(numero_msg) ELSE IF status_reg = "E" THEN LET numero_msg = 72 CALL msg(numero_msg) END IF END IF DISPLAY descrip1 TO descrip ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF END FUNCTION FUNCTION consulta_descuentos() OPEN WINDOW busqueda AT 6,12 WITH FORM "vefmwd005" ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST) LET int_flag = false CONSTRUCT criterio ON vetb00013.tipo_desc, vetb00013.descrip, vetb00013.cod_n, vetb00013.cod_grupo, vetb00013.cod_tipo, vetb00013.cod_sec, vetb00013.porc_desc, vetb00013.cantidad_1, vetb00013.cantidad_2, vetb00013.cajas_bonif FROM vetb00013.tipo_desc, vetb00013.descrip, vetb00013.cod_n, vetb00013.cod_grupo, vetb00013.cod_tipo, vetb00013.cod_sec, vetb00013.porc_desc, vetb00013.cantidad_1, vetb00013.cantidad_2, vetb00013.cajas_bonif IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE LET descrip1 = NULL CLOSE WINDOW busqueda RETURN END IF LET SELEC = " SELECT UNIQUE * FROM vetb00013 where ", " status_t is null and ", criterio clipped, " ORDER BY 1" PREPARE buscar_desc FROM selec CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF DECLARE datoss SCROLL CURSOR FOR buscar_desc OPEN datoss MESSAGE " Selecciona Descuento donde esta el cursor" FETCH FIRST datoss INTO descuento.tipo_desc, descuento.descrip, descuento.cod_n, descuento.cod_grupo, descuento.cod_tipo, descuento.cod_sec, descuento.porc_desc, descuento.cantidad_1, descuento.cantidad_2, descuento.cajas_bonif IF status >= 0 THEN IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF LET comisiones.cod_n = descuento.cod_n LET comisiones.cod_grupo = descuento.cod_grupo LET comisiones.cod_tipo = descuento.cod_tipo LET comisiones.cod_sec = descuento.cod_sec CALL busca_nombre_articulo() DISPLAY BY NAME descuento.tipo_desc, descuento.descrip, descuento.cod_n, descuento.cod_grupo, descuento.cod_tipo, descuento.cod_sec, descuento.porc_desc, descuento.cantidad_1, descuento.cantidad_2, descuento.cajas_bonif LET cliente_des.tipo_desc = descuento.tipo_desc LET descrip1 = descuento.descrip MENU "OPCIONES " COMMAND "Siguiente" "Presenta el proximo registro encontrado" FETCH NEXT datoss INTO descuento.tipo_desc, descuento.descrip, descuento.cod_n, descuento.cod_grupo, descuento.cod_tipo, descuento.cod_sec, descuento.porc_desc, descuento.cantidad_1, descuento.cantidad_2, descuento.cajas_bonif IF STATUS = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) END IF LET comisiones.cod_n = descuento.cod_n LET comisiones.cod_grupo = descuento.cod_grupo LET comisiones.cod_tipo = descuento.cod_tipo LET comisiones.cod_sec = descuento.cod_sec CALL busca_nombre_articulo() DISPLAY BY NAME descuento.tipo_desc, descuento.descrip, descuento.cod_n, descuento.cod_grupo, descuento.cod_tipo, descuento.cod_sec, descuento.porc_desc, descuento.cantidad_1, descuento.cantidad_2, descuento.cajas_bonif LET cliente_des.tipo_desc = descuento.tipo_desc LET descrip1 = descuento.descrip COMMAND "Anterior" "Presenta el registro anterior" FETCH PREVIOUS datoss INTO descuento.tipo_desc, descuento.descrip, descuento.cod_n, descuento.cod_grupo, descuento.cod_tipo, descuento.cod_sec, descuento.porc_desc, descuento.cantidad_1, descuento.cantidad_2, descuento.cajas_bonif IF STATUS = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) END IF LET comisiones.cod_n = descuento.cod_n LET comisiones.cod_grupo = descuento.cod_grupo LET comisiones.cod_tipo = descuento.cod_tipo LET comisiones.cod_sec = descuento.cod_sec CALL busca_nombre_articulo() DISPLAY BY NAME descuento.tipo_desc, descuento.descrip, descuento.cod_n, descuento.cod_grupo, descuento.cod_tipo, descuento.cod_sec, descuento.porc_desc, descuento.cantidad_1, descuento.cantidad_2, descuento.cajas_bonif LET cliente_des.tipo_desc = descuento.tipo_desc LET descrip1 = descuento.descrip COMMAND "Primero" "Presenta el primer registro encontrado" FETCH FIRST datoss INTO descuento.tipo_desc, descuento.descrip, descuento.cod_n, descuento.cod_grupo, descuento.cod_tipo, descuento.cod_sec, descuento.porc_desc, descuento.cantidad_1, descuento.cantidad_2, descuento.cajas_bonif LET comisiones.cod_n = descuento.cod_n LET comisiones.cod_grupo = descuento.cod_grupo LET comisiones.cod_tipo = descuento.cod_tipo LET comisiones.cod_sec = descuento.cod_sec CALL busca_nombre_articulo() DISPLAY BY NAME descuento.tipo_desc, descuento.descrip, descuento.cod_n, descuento.cod_grupo, descuento.cod_tipo, descuento.cod_sec, descuento.porc_desc, descuento.cantidad_1, descuento.cantidad_2, descuento.cajas_bonif LET numero_msg = 5 CALL msg(numero_msg) LET cliente_des.tipo_desc = descuento.tipo_desc LET descrip1 = descuento.descrip COMMAND "Ultimo" "Presenta el ultimo registro encontrado" FETCH LAST datoss INTO descuento.tipo_desc, descuento.descrip, descuento.cod_n, descuento.cod_grupo, descuento.cod_tipo, descuento.cod_sec, descuento.porc_desc, descuento.cantidad_1, descuento.cantidad_2, descuento.cajas_bonif LET comisiones.cod_n = descuento.cod_n LET comisiones.cod_grupo = descuento.cod_grupo LET comisiones.cod_tipo = descuento.cod_tipo LET comisiones.cod_sec = descuento.cod_sec CALL busca_nombre_articulo() DISPLAY BY NAME descuento.tipo_desc, descuento.descrip, descuento.cod_n, descuento.cod_grupo, descuento.cod_tipo, descuento.cod_sec, descuento.porc_desc, descuento.cantidad_1, descuento.cantidad_2, descuento.cajas_bonif LET numero_msg = 4 CALL msg(numero_msg) LET cliente_des.tipo_desc = descuento.tipo_desc LET descrip1 = descuento.descrip COMMAND "Retornar" "Retorna a la Pantalla Anterior" LET cliente_des.tipo_desc = descuento.tipo_desc LET descrip1 = descuento.descrip EXIT MENU END MENU CLOSE WINDOW busqueda END FUNCTION