Files
MBS/PROYECTO/addir/adprmt019.4gl
T

843 lines
30 KiB
Plaintext

{
-----------------------------------------------------------------------
PROGRAMA : ADPRMT019
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Adiestramientos al Personal
PROGRAMADOR : Ing. Betania Guerrero Perez
FECHA REALIZACION : Junio 10, 1993
-----------------------------------------------------------------------
}
GLOBALS "adprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
let usuarios = "kpolanco"
let clave = "RevolutionX3"
CONNECT to "smarmotech" USER usuarios USING clave
SELECT a.* INTO p_companias.* FROM companias a
CALL adprmt019()
END MAIN
FUNCTION adprmt019()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 24,
COMMENT LINE 23
OPEN FORM adfmmt019 FROM "adfmmt019"
DISPLAY FORM adfmmt019
DISPLAY "adprmt019" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Adiestramientos y Capacitacion" AT 6,27 ATTRIBUTE(BLACK)
MENU
ON ACTION nuevo
let int_flag = false
INITIALIZE emplea.* TO NULL
CALL adpcmf019()
ON ACTION buscar
let int_flag = false
CALL adpcad019()
ON ACTION Salir
EXIT MENU
END MENU
END FUNCTION
FUNCTION adpcad019()
WHENEVER ERROR CONTINUE
## CAPTURA LOS DATOS QUE VA A CONTENER EL REGISTRO
INPUT BY NAME adiestra.*
## VENTANA QUE BUSCA LOS EMPLEDOS Y LAS PROFESIONES
ON KEY (CONTROL-W)
CASE
WHEN INFIELD (num_emp)
CALL busca_empleado()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
NEXT FIELD num_emp
END IF
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num_emp
END IF
LET descrip1 = nombre
LET adiestra.num_emp = despl_emp[curr1].num_emp
LET adiestra.departamento = despl_emp[curr1].departamento
LET adiestra.nivel_emp = despl_emp[curr1].nivel_emp
LET adiestra.cod_puesto = despl_emp[curr1].cod_puesto
DISPLAY BY NAME adiestra.num_emp,adiestra.departamento,
adiestra.nivel_emp,adiestra.cod_puesto,
descrip1
NEXT FIELD cod_prof
WHEN INFIELD (cod_prof)
CALL carrera()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
NEXT FIELD cod_prof
END IF
LET adiestra.cod_prof = basico.cod_prof
SELECT nom_prof INTO profesion.nom_prof FROM adtb00010
WHERE cod_prof = basico.cod_prof
DISPLAY BY NAME adiestra.cod_prof,profesion.nom_prof
NEXT FIELD evento
WHEN INFIELD (num1_emp)
CALL busca_empleado()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
NEXT FIELD num1_emp
END IF
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num1_emp
END IF
LET descrip2 = nombre
LET adiestra.num1_emp = despl_emp[curr1].num_emp
LET adiestra.departamento1 = despl_emp[curr1].departamento
LET adiestra.nivel1_emp = despl_emp[curr1].nivel_emp
LET adiestra.cod1_puesto = despl_emp[curr1].cod_puesto
DISPLAY BY NAME adiestra.num1_emp,adiestra.departamento1,
adiestra.nivel1_emp,adiestra.cod1_puesto,
descrip2
NEXT FIELD num2_emp
WHEN INFIELD (num2_emp)
CALL busca_empleado()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
NEXT FIELD num2_emp
END IF
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num2_emp
END IF
LET descrip3 = nombre
LET adiestra.num2_emp = despl_emp[curr1].num_emp
LET adiestra.departamento2 = despl_emp[curr1].departamento
LET adiestra.nivel2_emp = despl_emp[curr1].nivel_emp
LET adiestra.cod2_puesto = despl_emp[curr1].cod_puesto
DISPLAY BY NAME adiestra.num2_emp,adiestra.departamento2,
adiestra.nivel2_emp,adiestra.cod2_puesto,
descrip3
NEXT FIELD num3_emp
WHEN INFIELD (num3_emp)
CALL busca_empleado()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
NEXT FIELD num3_emp
END IF
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num3_emp
END IF
LET descrip4 = nombre
LET adiestra.num3_emp = despl_emp[curr1].num_emp
LET adiestra.departamento3 = despl_emp[curr1].departamento
LET adiestra.nivel3_emp = despl_emp[curr1].nivel_emp
LET adiestra.cod3_puesto = despl_emp[curr1].cod_puesto
DISPLAY BY NAME adiestra.num3_emp,adiestra.departamento3,
adiestra.nivel3_emp,adiestra.cod3_puesto,
descrip4
END CASE
BEFORE FIELD fecha
LET adiestra.fecha = today using "dd/mm/yyyy"
DISPLAY BY NAME adiestra.fecha
## VERIFICA QUE EL EMPLEADO EXISTA EN EL CATALOGO DE EMPLEADOS
AFTER FIELD num_emp
IF adiestra.num_emp IS NOT NULL THEN
SELECT departamento,nivel_emp,cod_puesto,nom1_emp,nom2_emp,
apell1_emp,apell2_emp
INTO adiestra.departamento,adiestra.nivel_emp,
adiestra.cod_puesto,nombre1,nombre2,apellido1,apellido2
FROM adtb00003
WHERE num_emp = adiestra.num_emp and status_t is null
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num_emp
END IF
ELSE
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_emp
END IF
LET descrip1 = nombre1 clipped," ",nombre2 clipped," ",
apellido1 clipped," ",apellido2 clipped
DISPLAY BY NAME adiestra.departamento,adiestra.nivel_emp,
adiestra.cod_puesto,descrip1
NEXT FIELD cod_prof
## VERIFICA QUE LA PROFESION EXISTA EN EL CATALOGO DE PROFESIONES
AFTER FIELD cod_prof
IF adiestra.cod_prof IS NOT NULL THEN
SELECT nom_prof INTO profesion.nom_prof FROM adtb00010
WHERE cod_prof = adiestra.cod_prof and status_t is null
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cod_prof
END IF
DISPLAY BY NAME profesion.nom_prof
END IF
AFTER FIELD evento
IF adiestra.evento IS NOT NULL THEN
IF adiestra.evento = 1 THEN
LET descrip = "SEMINARIO"
END IF
IF adiestra.evento = 2 THEN
LET descrip = "CURSO"
END IF
IF adiestra.evento = 3 THEN
LET descrip = "TALLER"
END IF
IF adiestra.evento = 4 THEN
LET descrip = "CONFERENCIA"
END IF
ELSE
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD evento
END IF
DISPLAY BY NAME descrip
## VERIFICA QUE EL REGISTRO NO ESTE DUPLICADO
AFTER FIELD nom_evento
IF adiestra.nom_evento IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD nom_evento
ELSE
SELECT UNIQUE num_emp FROM adtb00022
WHERE @num_emp = adiestra.num_emp and
@departamento = adiestra.departamento and
nivel_emp = adiestra.nivel_emp and
cod_puesto = adiestra.cod_puesto and
nom_evento matches adiestra.nom_evento
IF STATUS >= 0 THEN
IF STATUS != NOTFOUND THEN
IF adiestra.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
DISPLAY BY NAME adiestra.*
LET numero_msg = 12
CALL msg(numero_msg)
INITIALIZE adiestra.* TO NULL
CLEAR FORM
NEXT FIELD fecha
END IF
ELSE
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
END IF
END IF
AFTER FIELD fech_evento
IF adiestra.fech_evento IS NOT NULL THEN
IF adiestra.fecha > adiestra.fech_evento THEN
LET numero_msg = 51
CALL msg(numero_msg)
NEXT FIELD fech_evento
END IF
END IF
AFTER FIELD costo_evento
IF adiestra.costo_evento IS NULL THEN
LET adiestra.costo_evento = 0
END IF
## CHEQUEA QUE EL EMPLEADO EXISTA EN LA TABLA DE EMPLEADOS Y ADEMAS QUE
## EL EMPLEADO QUE FIRMA ES EL MISMO QUE SOLICITA EL ADIESTRAMIENTO
BEFORE FIELD num1_emp
LET adiestra.num1_emp = adiestra.num_emp
LET adiestra.departamento1 = adiestra.departamento
LET adiestra.nivel1_emp = adiestra.nivel_emp
LET adiestra.cod1_puesto = adiestra.cod_puesto
DISPLAY BY NAME adiestra.num1_emp,adiestra.departamento1,
adiestra.nivel1_emp,adiestra.cod1_puesto
AFTER FIELD num1_emp
IF adiestra.num1_emp IS NOT NULL THEN
SELECT departamento,nivel_emp,cod_puesto,nom1_emp,nom2_emp,
apell1_emp,apell2_emp
INTO adiestra.departamento1,adiestra.nivel1_emp,
adiestra.cod1_puesto,nombre3,nombre4,apellido3,apellido4
FROM adtb00003
WHERE num_emp = adiestra.num1_emp and status_t is null
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num1_emp
END IF
ELSE
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num1_emp
END IF
LET descrip2 = nombre3 clipped," ",nombre4 clipped," ",
apellido3 clipped," ",apellido4 clipped
DISPLAY BY NAME adiestra.departamento1,adiestra.nivel1_emp,
adiestra.cod1_puesto,descrip2
NEXT FIELD num2_emp
AFTER FIELD num2_emp
IF adiestra.num2_emp IS NOT NULL THEN
SELECT departamento,nivel_emp,cod_puesto,nom1_emp,nom2_emp,
apell1_emp,apell2_emp
INTO adiestra.departamento2,adiestra.nivel2_emp,
adiestra.cod2_puesto,nombre3,nombre4,apellido3,apellido4
FROM adtb00003
WHERE num_emp = adiestra.num2_emp and status_t is null
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num2_emp
END IF
ELSE
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num2_emp
END IF
LET descrip3 = nombre3 clipped," ",nombre4 clipped," ",
apellido3 clipped," ",apellido4 clipped
DISPLAY BY NAME adiestra.departamento2,adiestra.nivel2_emp,
adiestra.cod2_puesto,descrip3
NEXT FIELD num3_emp
AFTER FIELD num3_emp
IF adiestra.num3_emp IS NOT NULL THEN
SELECT departamento,nivel_emp,cod_puesto,nom1_emp,nom2_emp,
apell1_emp,apell2_emp
INTO adiestra.departamento3,adiestra.nivel3_emp,
adiestra.cod3_puesto,nombre5,nombre6,apellido5,apellido6
FROM adtb00003
WHERE num_emp = adiestra.num3_emp and status_t is null
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num3_emp
END IF
ELSE
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num3_emp
END IF
LET descrip4 = nombre5 clipped," ",nombre6 clipped," ",
apellido5 clipped," ",apellido6 clipped
DISPLAY BY NAME adiestra.departamento3,adiestra.nivel3_emp,
adiestra.cod3_puesto,descrip4
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF adiestra.fecha IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
IF adiestra.num_emp IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_emp
END IF
IF adiestra.evento IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD evento
END IF
IF adiestra.nom_evento IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD nom_evento
END IF
IF adiestra.fech_evento IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fech_evento
END IF
IF adiestra.costo_evento IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD costo_evento
END IF
IF adiestra.num1_emp IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num1_emp
END IF
IF adiestra.num2_emp IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num2_emp
END IF
IF adiestra.num3_emp IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num3_emp
END IF
## SI NO OCURRE NINGUN ERROR SE PROCEDE A INSERTAR EL REGISTRO
IF adiestra.num_emp IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_emp
ELSE
INSERT INTO adtb00022
VALUES (adiestra.fecha,adiestra.num_emp,adiestra.departamento,
adiestra.nivel_emp,adiestra.cod_puesto,adiestra.cod_prof,
adiestra.evento,adiestra.nom_evento,adiestra.fech_evento,
adiestra.costo_evento,adiestra.num1_emp,
adiestra.departamento1,adiestra.nivel1_emp,
adiestra.cod1_puesto,adiestra.num2_emp,
adiestra.departamento2,adiestra.nivel2_emp,
adiestra.cod2_puesto,adiestra.num3_emp,
adiestra.departamento3,adiestra.nivel3_emp,
adiestra.cod3_puesto,null,SUSER_SNAME (),GETDATE (),null,null)
LET numero_msg = 1
CALL msg(numero_msg)
CLEAR FORM
INITIALIZE adiestra.* TO NULL
NEXT FIELD fecha
END IF
EXIT INPUT
END INPUT
END FUNCTION
FUNCTION adpcmf019()
## AQUI SE PREPARA PARA LA CAPTURA DEL CRITERIO DE SELECCION PARA LA
## MODIFICACION DE REGISTROS
WHENEVER ERROR CONTINUE
CONSTRUCT criterio ON fecha,num_emp,departamento,nivel_emp,cod_puesto
FROM adtb00022.fecha,adtb00022.num_emp,
adtb00022.departamento,adtb00022.nivel_emp,
adtb00022.cod_puesto
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = "SELECT UNIQUE * FROM adtb00022 ",
"WHERE status_t is null and ",criterio clipped,
" ORDER BY 2,3,4,5"
PREPARE busca FROM selec
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO adiestra.*
IF STATUS >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
ELSE
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
END IF
CALL muestra()
MENU "OPCIONES "
COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO adiestra.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
CALL muestra()
COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO adiestra.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
CALL muestra()
COMMAND "Primero" "Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO adiestra.*
CALL muestra()
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO adiestra.*
CALL muestra()
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger" "<Esc> Actualiza Registro <Ctrl-C> Cancela Operacion"
IF adiestra.status_t = "E" THEN
LET numero_msg = 39
CALL msg(numero_msg)
RETURN
END IF
## SE SELECCIONAN LOS CAMPOS QUE SE PUEDEN MODIFICAR
INPUT BY NAME adiestra.cod_prof,adiestra.evento,adiestra.nom_evento,
adiestra.fech_evento,adiestra.costo_evento,
adiestra.num2_emp,adiestra.num3_emp
WITHOUT DEFAULTS
## VENTANA QUE BUSCA LAS PROFESIONES
ON KEY (CONTROL-W)
CASE
WHEN INFIELD (cod_prof)
CALL carrera()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
NEXT FIELD cod_prof
END IF
LET adiestra.cod_prof = basico.cod_prof
SELECT nom_prof INTO profesion.nom_prof FROM adtb00010
WHERE cod_prof = basico.cod_prof
DISPLAY BY NAME adiestra.cod_prof,profesion.nom_prof
NEXT FIELD evento
WHEN INFIELD (num2_emp)
CALL busca_empleado()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
NEXT FIELD num2_emp
END IF
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num2_emp
END IF
LET descrip3 = nombre
LET adiestra.num2_emp = despl_emp[curr1].num_emp
LET adiestra.departamento2 = despl_emp[curr1].departamento
LET adiestra.nivel2_emp = despl_emp[curr1].nivel_emp
LET adiestra.cod2_puesto = despl_emp[curr1].cod_puesto
DISPLAY BY NAME adiestra.num2_emp,adiestra.departamento2,
adiestra.nivel2_emp,adiestra.cod2_puesto,
descrip3
NEXT FIELD num3_emp
WHEN INFIELD (num3_emp)
CALL busca_empleado()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
NEXT FIELD num3_emp
END IF
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num3_emp
END IF
LET descrip4 = nombre
LET adiestra.num3_emp = despl_emp[curr1].num_emp
LET adiestra.departamento3 = despl_emp[curr1].departamento
LET adiestra.nivel3_emp = despl_emp[curr1].nivel_emp
LET adiestra.cod3_puesto = despl_emp[curr1].cod_puesto
DISPLAY BY NAME adiestra.num3_emp,adiestra.departamento3,
adiestra.nivel3_emp,adiestra.cod3_puesto,
descrip4
END CASE
## VERIFICA QUE LA PROFESION EXISTA EN EL CATALOGO DE PROFESIONES
AFTER FIELD cod_prof
IF adiestra.cod_prof IS NOT NULL THEN
SELECT nom_prof INTO profesion.nom_prof FROM adtb00010
WHERE cod_prof = adiestra.cod_prof and status_t is null
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cod_prof
END IF
DISPLAY BY NAME profesion.nom_prof
END IF
AFTER FIELD evento
IF adiestra.evento IS NOT NULL THEN
IF adiestra.evento = 1 THEN
LET descrip = "SEMINARIO"
END IF
IF adiestra.evento = 2 THEN
LET descrip = "CURSO"
END IF
IF adiestra.evento = 3 THEN
LET descrip = "TALLER"
END IF
IF adiestra.evento = 4 THEN
LET descrip = "CONFERENCIA"
END IF
ELSE
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD evento
END IF
DISPLAY BY NAME descrip
AFTER FIELD nom_evento
IF adiestra.nom_evento IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD nom_evento
END IF
AFTER FIELD fech_evento
IF adiestra.fech_evento IS NOT NULL THEN
IF adiestra.fecha > adiestra.fech_evento THEN
LET numero_msg = 51
CALL msg(numero_msg)
NEXT FIELD fech_evento
END IF
END IF
AFTER FIELD costo_evento
IF adiestra.costo_evento IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD costo_evento
END IF
AFTER FIELD num2_emp
IF adiestra.num2_emp IS NOT NULL THEN
SELECT departamento,nivel_emp,cod_puesto,nom1_emp,nom2_emp,
apell1_emp,apell2_emp
INTO adiestra.departamento2,adiestra.nivel2_emp,
adiestra.cod2_puesto,nombre3,nombre4,apellido3,apellido4
FROM adtb00003
WHERE num_emp = adiestra.num2_emp and status_t is null
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num2_emp
END IF
ELSE
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num2_emp
END IF
LET descrip3 = nombre3 clipped," ",nombre4 clipped," ",
apellido3 clipped," ",apellido4 clipped
DISPLAY BY NAME adiestra.departamento2,adiestra.nivel2_emp,
adiestra.cod2_puesto,descrip3
NEXT FIELD num3_emp
AFTER FIELD num3_emp
IF adiestra.num3_emp IS NOT NULL THEN
SELECT departamento,nivel_emp,cod_puesto,nom1_emp,nom2_emp,
apell1_emp,apell2_emp
INTO adiestra.departamento3,adiestra.nivel3_emp,
adiestra.cod3_puesto,nombre5,nombre6,apellido5,apellido6
FROM adtb00003
WHERE num_emp = adiestra.num3_emp and status_t is null
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num3_emp
END IF
ELSE
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num3_emp
END IF
LET descrip4 = nombre5 clipped," ",nombre6 clipped," ",
apellido5 clipped," ",apellido6 clipped
DISPLAY BY NAME adiestra.departamento3,adiestra.nivel3_emp,
adiestra.cod3_puesto,descrip4
#### Verifica si el usuario presiono la tecla <Ctrl-C>
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
CLEAR FORM
RETURN
END IF
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
## AQUI SE ACTUALIZA EL REGISTRO
UPDATE adtb00022 SET cod_prof = adiestra.cod_prof,
evento = adiestra.evento,
nom_evento = adiestra.nom_evento,
fech_evento = adiestra.fech_evento,
costo_evento = adiestra.costo_evento,
num2_emp = adiestra.num2_emp,
departamento2 = adiestra.departamento2,
nivel2_emp = adiestra.nivel2_emp,
cod2_puesto = adiestra.cod2_puesto,
num3_emp = adiestra.num3_emp,
departamento3 = adiestra.departamento3,
nivel3_emp = adiestra.nivel3_emp,
cod3_puesto = adiestra.cod3_puesto,
us_mod = SUSER_SNAME (),
fech_mod = GETDATE ()
WHERE fecha = adiestra.fecha and num_emp = adiestra.num_emp
LET numero_msg = 13
CALL msg(numero_msg)
EXIT INPUT
END INPUT
COMMAND KEY ("L") "eLiminar"
UPDATE adtb00022 SET (status_t,us_mod,fech_mod) = ("E",SUSER_SNAME (),GETDATE ())
WHERE fecha = adiestra.fecha and num_emp = adiestra.num_emp
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar" "Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION
## SELECCIONA Y DESPLIEGA LOS DATOS DEL REGISTRO ESCOGIDO
FUNCTION muestra()
SELECT nom1_emp,nom2_emp,apell1_emp,apell2_emp
INTO nombre1,nombre2,apellido1,apellido2
FROM adtb00003 WHERE num_emp = adiestra.num_emp
LET descrip1 = nombre1 clipped," ",nombre2 clipped," ",apellido1 clipped,
" ",apellido2 clipped
SELECT nom_prof INTO profesion.nom_prof FROM adtb00010
WHERE cod_prof = adiestra.cod_prof
IF adiestra.evento = 1 THEN
LET descrip = "SEMINARIO"
END IF
IF adiestra.evento = 2 THEN
LET descrip = "CURSO"
END IF
IF adiestra.evento = 3 THEN
LET descrip = "TALLER"
END IF
IF adiestra.evento = 4 THEN
LET descrip = "CONFERENCIA"
END IF
SELECT nom1_emp,nom2_emp,apell1_emp,apell2_emp
INTO nombre1,nombre2,apellido1,apellido2
FROM adtb00003 WHERE num_emp=adiestra.num1_emp
LET descrip2 = nombre1 clipped," ",nombre2 clipped," ",apellido1 clipped,
" ",apellido2 clipped
SELECT nom1_emp,nom2_emp,apell1_emp,apell2_emp
INTO nombre3,nombre4,apellido3,apellido4
FROM adtb00003 WHERE num_emp = adiestra.num2_emp
LET descrip3 = nombre3 clipped," ",nombre4 clipped," ",apellido3 clipped,
" ",apellido4 clipped
SELECT nom1_emp,nom2_emp,apell1_emp,apell2_emp
INTO nombre5,nombre6,apellido5,apellido6
FROM adtb00003 WHERE num_emp = adiestra.num3_emp
LET descrip4 = nombre5 clipped," ",nombre6 clipped," ",apellido5 clipped,
" ",apellido6 clipped
DISPLAY BY NAME adiestra.*,descrip1,profesion.nom_prof,descrip,
descrip2,descrip3,descrip4
END FUNCTION