Files
DECOMARMOL/PROYECTO/dsdir/dsprcs004.4gl
T
2026-09-22 20:38:51 -04:00

232 lines
6.0 KiB
Plaintext

#######################################################################
# SISTEMA : DOCUMENTACION DE SISTEMA
# PROGRAMA : DSPRMT004.4GL
# OBJETIVO : Consulta de Documentacion de Programas de cada Sistema
# AUTOR : Tadeo A. Ferreras F.
# FECHA : JUNIO 14, 1995
########################################################################
DATABASE rayovac
GLOBALS
"dsprgb000.4gl"
FUNCTION dsprcs004()
OPTIONS
FORM LINE 8,
ERROR LINE 23,
PROMPT LINE 23
OPEN FORM dsfmcs004 FROM "dsfmmt002"
DISPLAY FORM dsfmcs004
CALL pantalla()
DISPLAY "dsprcs004" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Documentacion de Programa" AT 6,27 ATTRIBUTE(BLACK)
CONSTRUCT criterio ON a.programa,a.cod_sistema,a.num_emp,a.numero_act
FROM programa,cod_sistema,num_emp,numero_act
IF int_flag THEN
ERROR "(2) OPERACION CANCELADA"
LET int_flag = FALSE
RETURN
END IF
LET selec = "SELECT a.* FROM dstb00001 a WHERE a.status_t IS NULL AND ",
criterio CLIPPED," AND a.status_t IS NULL ORDER BY 1"
PREPARE comando FROM selec
DECLARE busca SCROLL CURSOR FOR comando
OPEN busca
FETCH FIRST busca INTO dstb01.*
IF STATUS = NOTFOUND THEN
ERROR "(3) REGISTRO NO EXISTE"
RETURN
END IF
SELECT a.nom1_emp,a.apell1_emp INTO nombre1,apellido1 FROM adtb00003 a
WHERE a.num_emp = dstb01.num_emp
LET nombre = nombre1 CLIPPED," ",apellido1 CLIPPED
DISPLAY BY NAME dstb01.programa THRU dstb01.numero_act,nombre
MENU "OPCION"
COMMAND "Siguiente"
FETCH NEXT busca INTO dstb01.*
IF STATUS = NOTFOUND THEN
ERROR "(3) REGISTRO NO EXISTE"
END IF
SELECT a.nom1_emp,a.apell1_emp INTO nombre1,apellido1 FROM adtb00003 a
WHERE a.num_emp = dstb01.num_emp
LET nombre = nombre1 CLIPPED," ",apellido1 CLIPPED
DISPLAY BY NAME dstb01.programa THRU dstb01.numero_act,nombre
COMMAND "Anterior"
FETCH PREVIOUS busca INTO dstb01.*
IF STATUS = NOTFOUND THEN
ERROR "(3) REGISTRO NO EXISTE"
END IF
SELECT a.nom1_emp,a.apell1_emp INTO nombre1,apellido1 FROM adtb00003 a
WHERE a.num_emp = dstb01.num_emp
LET nombre = nombre1 CLIPPED," ",apellido1 CLIPPED
DISPLAY BY NAME dstb01.programa THRU dstb01.numero_act,nombre
COMMAND "Primero"
FETCH FIRST busca INTO dstb01.*
IF STATUS = NOTFOUND THEN
ERROR "(3) REGISTRO NO EXISTE"
END IF
SELECT a.nom1_emp,a.apell1_emp INTO nombre1,apellido1 FROM adtb00003 a
WHERE a.num_emp = dstb01.num_emp
LET nombre = nombre1 CLIPPED," ",apellido1 CLIPPED
DISPLAY BY NAME dstb01.programa THRU dstb01.numero_act,nombre
COMMAND "Ultimo"
FETCH LAST busca INTO dstb01.*
IF STATUS = NOTFOUND THEN
ERROR "(3) REGISTRO NO EXISTE"
END IF
SELECT a.nom1_emp,a.apell1_emp INTO nombre1,apellido1 FROM adtb00003 a
WHERE a.num_emp = dstb01.num_emp
LET nombre = nombre1 CLIPPED," ",apellido1 CLIPPED
DISPLAY BY NAME dstb01.programa THRU dstb01.numero_act,nombre
COMMAND "Ver" "Presione <ESC> Para Actualizar <Ctrl-C> Para Cancelar"
CALL entradas01()
CALL procesos01()
CALL salidas01()
CALL tablas01()
COMMAND "Retornar"
EXIT MENU
END MENU
END FUNCTION
FUNCTION entradas01()
OPEN WINDOW dsprwd001 AT 9,4 WITH FORM "dsfmwd001"
ATTRIBUTE (BORDER,FORM LINE FIRST + 1,COMMENT LINE LAST)
LET selec1 =
"SELECT a.linea_no,a.entradas FROM dstb00002 a ",
"WHERE a.programa = ? AND a.numero_act = ? ORDER BY 1 "
PREPARE com_a FROM selec1
DECLARE busca1 CURSOR FOR com_a
OPEN busca1 USING dstb01.programa,dstb01.numero_act
LET p = 1
WHILE STATUS != NOTFOUND
FETCH busca1 INTO linea_no[p],arr_ent[p]
IF STATUS = NOTFOUND THEN
EXIT WHILE
END IF
LET p = p + 1
END WHILE
CALL SET_COUNT(p - 1)
DISPLAY ARRAY arr_ent TO arr_ent1.*
LET curr = ARR_CURR()
CLOSE WINDOW dsprwd001
END FUNCTION
FUNCTION procesos01()
OPEN WINDOW dsprwd002 AT 9,4 WITH FORM "dsfmwd002"
ATTRIBUTE (BORDER,FORM LINE FIRST + 1,COMMENT LINE LAST)
LET selec1 =
"SELECT a.linea_no,a.proceso FROM dstb00002 a ",
"WHERE a.programa = ? AND a.numero_act = ? ORDER BY 1 "
PREPARE com_2 FROM selec1
DECLARE busca2 CURSOR FOR com_2
OPEN busca2 USING dstb01.programa,dstb01.numero_act
LET p = 1
WHILE STATUS != NOTFOUND
FETCH busca2 INTO linea_no[p],arr_pro[p]
IF STATUS = NOTFOUND THEN
EXIT WHILE
END IF
LET p = p + 1
END WHILE
CALL SET_COUNT(p - 1)
DISPLAY ARRAY arr_pro TO arr_pro1.*
LET curr = ARR_CURR()
CLOSE WINDOW dsprwd002
END FUNCTION
FUNCTION salidas01()
OPEN WINDOW dsprwd003 AT 9,4 WITH FORM "dsfmwd003"
ATTRIBUTE (BORDER,FORM LINE FIRST + 1,COMMENT LINE LAST)
LET selec1 =
"SELECT a.linea_no,a.salida FROM dstb00002 a ",
"WHERE a.programa = ? AND a.numero_act = ? ORDER BY 1 "
PREPARE com_s FROM selec1
DECLARE busca3 CURSOR FOR com_s
OPEN busca3 USING dstb01.programa,dstb01.numero_act
LET p = 1
WHILE STATUS != NOTFOUND
FETCH busca3 INTO linea_no[p],arr_sal[p]
IF STATUS = NOTFOUND THEN
EXIT WHILE
END IF
LET p = p + 1
END WHILE
CALL SET_COUNT(p - 1)
DISPLAY ARRAY arr_sal TO arr_sal1.*
LET curr = ARR_CURR()
CLOSE WINDOW dsprwd003
END FUNCTION
FUNCTION tablas01()
OPEN WINDOW dsprwd006 AT 9,4 WITH FORM "dsfmwd006"
ATTRIBUTE (BORDER,FORM LINE FIRST + 1,COMMENT LINE LAST)
LET selec1 =
"SELECT a.tabla FROM dstb00006 a WHERE a.programa = ? AND ",
" a.numero_act = ? ORDER BY 1 "
PREPARE com_t FROM selec1
DECLARE busca4 CURSOR FOR com_t
OPEN busca4 USING dstb01.programa,dstb01.numero_act
LET p = 1
WHILE STATUS != NOTFOUND
FETCH busca4 INTO arr_tab[p]
IF STATUS = NOTFOUND THEN
EXIT WHILE
END IF
LET p = p + 1
END WHILE
CALL SET_COUNT(p - 1)
DISPLAY ARRAY arr_tab TO arr_tab1.*
LET curr = ARR_CURR()
CLOSE WINDOW dsprwd006
END FUNCTION