1097 lines
29 KiB
Plaintext
1097 lines
29 KiB
Plaintext
#######################################################################
|
|
# SISTEMA : DOCUMENTACION DE SISTEMA
|
|
# PROGRAMA : DSPRMT002.4GL
|
|
# OBJETIVO : Documentar Los Programas de cada Sistema
|
|
# AUTOR : Tadeo A. Ferreras F.
|
|
# FECHA : JUNIO 7, 1995
|
|
# MODIFICADO POR: JUAN F. SOTO
|
|
# DESCRIPCION : IMPRIMIR DOCUMENTO DE CREACION Y/O MODIFICACION DE PROGRAMAS
|
|
# FECHA : OCTUBRE 19, 1995.
|
|
########################################################################
|
|
DATABASE rayovac
|
|
GLOBALS
|
|
"dsprgb000.4gl"
|
|
|
|
DEFINE la_presione,opt1 CHAR(1)
|
|
DEFINE numero_ant,k1,k2,k3,i INTEGER
|
|
|
|
FUNCTION dsprmt002()
|
|
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 23,
|
|
PROMPT LINE 23
|
|
|
|
OPEN FORM dsfmmt002 FROM "dsfmmt002"
|
|
DISPLAY FORM dsfmmt002
|
|
CALL pantalla()
|
|
DISPLAY "dsprmt002" AT 4,3 ATTRIBUTE(RED)
|
|
DISPLAY "Documentacion de Programas" AT 6,27 ATTRIBUTE(BLACK)
|
|
|
|
MENU "Mant"
|
|
COMMAND "Adicionar"
|
|
"Presione <ESC> para Grabar <Ctrl-C> Para Cancelar"
|
|
LET int_flag = FALSE
|
|
CLEAR FORM
|
|
CALL dsprad002()
|
|
COMMAND "Consulta-Modificar"
|
|
"Presione <ESC> para Actualizar <Ctrl-C> Para Cancelar"
|
|
LET int_flag = FALSE
|
|
CLEAR FORM
|
|
CALL dsprmd002()
|
|
COMMAND "Salir"
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
FUNCTION dsprad002()
|
|
|
|
LET dstb01.no_solicitud= NULL
|
|
LET dstb01.programa = NULL
|
|
LET dstb01.numero_act = 0
|
|
LET dstb01.descripcion = NULL
|
|
LET dstb01.objetivo1 = NULL
|
|
LET dstb01.objetivo2 = NULL
|
|
|
|
INPUT BY NAME dstb01.programa THRU dstb01.objetivo2 WITHOUT DEFAULTS
|
|
AFTER FIELD no_solicitud
|
|
|
|
SELECT UNIQUE no_solicitud FROM dstb00001
|
|
WHERE no_solicitud = dstb01.no_solicitud and
|
|
cod_sistema = dstb01.cod_sistema and
|
|
status_t is null
|
|
|
|
IF status != notfound THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD no_solicitud
|
|
END IF
|
|
|
|
AFTER FIELD programa
|
|
IF dstb01.programa IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD programa
|
|
END IF
|
|
|
|
LET dstb01.numero_act = 0
|
|
SELECT MAX(a.numero_act) INTO dstb01.numero_act FROM dstb00001 a
|
|
WHERE a.programa = dstb01.programa AND a.status_t IS NULL
|
|
|
|
SELECT UNIQUE descripcion,fecha_creacion
|
|
INTO dstb01.descripcion,dstb01.fecha_creacion FROM dstb00001 a
|
|
WHERE a.programa = dstb01.programa AND a.numero_act = 1 AND
|
|
a.status_t IS NULL
|
|
|
|
IF dstb01.numero_act IS NULL OR dstb01.numero_act = 0 THEN
|
|
LET dstb01.numero_act = 0
|
|
ELSE
|
|
SELECT UNIQUE numero_act INTO dstb01.numero_act FROM dstb00001 a
|
|
WHERE a.programa = dstb01.programa AND
|
|
a.numero_act = dstb01.numero_act
|
|
|
|
DISPLAY BY NAME dstb01.cod_sistema THRU dstb01.numero_act
|
|
END IF
|
|
|
|
LET dstb01.numero_act = dstb01.numero_act + 1
|
|
|
|
DISPLAY BY NAME dstb01.numero_act,dstb01.descripcion,
|
|
dstb01.fecha_creacion
|
|
|
|
AFTER FIELD cod_sistema
|
|
IF dstb01.cod_sistema IS NULL THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_sistema
|
|
END IF
|
|
|
|
{IF dstb01.cod_sistema != dstb01.programa[1,2] THEN
|
|
LET numero_msg = 242
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_sistema
|
|
END IF}
|
|
|
|
SELECT a.desc_sistema INTO dstb03.desc_sistema FROM dstb00003 a
|
|
WHERE a.cod_sistema = dstb01.cod_sistema AND a.status_t IS NULL
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_sistema
|
|
END IF
|
|
DISPLAY BY NAME dstb03.desc_sistema
|
|
|
|
AFTER FIELD num_emp
|
|
IF dstb01.num_emp IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
|
|
SELECT a.nom1_emp,a.apell1_emp INTO nombre1,apellido1 FROM adtb00003 a
|
|
WHERE a.num_emp = dstb01.num_emp
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
|
|
LET nombre = nombre1 CLIPPED," ",apellido1 CLIPPED
|
|
DISPLAY BY NAME nombre
|
|
|
|
BEFORE FIELD fecha_creacion
|
|
IF dstb01.numero_act > 1 THEN
|
|
NEXT FIELD fecha_modificacion
|
|
END IF
|
|
|
|
AFTER FIELD fecha_creacion
|
|
IF dstb01.fecha_creacion IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_creacion
|
|
END IF
|
|
|
|
IF dstb01.fecha_creacion > TODAY THEN
|
|
LET numero_msg = 189
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_creacion
|
|
END IF
|
|
|
|
BEFORE FIELD fecha_modificacion
|
|
IF dstb01.numero_act = 1 THEN
|
|
NEXT FIELD descripcion
|
|
END IF
|
|
|
|
AFTER FIELD fecha_modificacion
|
|
IF dstb01.fecha_modificacion IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_modificacion
|
|
END IF
|
|
|
|
IF dstb01.fecha_modificacion > TODAY THEN
|
|
LET numero_msg = 189
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_modificacion
|
|
END IF
|
|
|
|
IF dstb01.fecha_modificacion < dstb01.fecha_creacion THEN
|
|
LET numero_msg = 241
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_modificacion
|
|
END IF
|
|
|
|
NEXT FIELD objetivo1
|
|
|
|
AFTER FIELD descripcion
|
|
IF dstb01.descripcion IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD descripcion
|
|
END IF
|
|
|
|
END INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
LET opt1 = "A"
|
|
|
|
CALL entradas001()
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
CALL procesos001()
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
CALL salidas001()
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
CALL tablas001()
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
|
|
INSERT INTO dstb00001 VALUES(dstb01.*)
|
|
UPDATE dstb00001 SET (us_crea,fech_crea) = (USER,CURRENT)
|
|
WHERE @programa = dstb01.programa AND @numero_act = dstb01.numero_act
|
|
|
|
IF idx > idx1 THEN
|
|
LET maximo = idx
|
|
ELSE
|
|
LET maximo = idx1
|
|
END IF
|
|
|
|
IF maximo > idx2 THEN
|
|
LET maximo = maximo
|
|
ELSE
|
|
LET maximo = idx2
|
|
END IF
|
|
|
|
LET p = 0
|
|
FOR j = 1 TO maximo
|
|
IF (arr_ent[j] IS NULL OR arr_ent[j] = " ") AND
|
|
(arr_pro[j] IS NULL OR arr_pro[j] = " ") AND
|
|
(arr_sal[j] IS NULL OR arr_sal[j] = " ") THEN
|
|
LET p = p
|
|
ELSE
|
|
LET p = p + 1
|
|
INSERT INTO dstb00002 VALUES (dstb01.programa,dstb01.numero_act,p,
|
|
arr_ent[j],arr_pro[j],arr_sal[j],NULL,USER,
|
|
CURRENT,USER,CURRENT)
|
|
{LET arr_ent[j] = " "
|
|
LET arr_pro[j] = " "
|
|
LET arr_sal[j] = " "}
|
|
END IF
|
|
END FOR
|
|
|
|
FOR j = 1 TO idx3
|
|
IF arr_tab[j] IS NOT NULL THEN
|
|
IF arr_tab[j] != " " THEN
|
|
INSERT INTO dstb00006 VALUES (dstb01.programa,dstb01.numero_act,
|
|
arr_tab[j],NULL,USER,CURRENT,NULL,NULL)
|
|
LET arr_tab[j] = " "
|
|
END IF
|
|
END IF
|
|
END FOR
|
|
|
|
# Impresion del documento cuando se esta creando el programa
|
|
PROMPT "Desea Imprimir Este Documento (S/N)? " FOR CHAR opcion
|
|
LET opcion = upshift(opcion)
|
|
IF opcion = "S" THEN
|
|
START REPORT reporte4 TO PRINTER
|
|
FOR idx = 1 TO 60
|
|
OUTPUT TO REPORT reporte4(dstb01.programa,dstb01.numero_act,p,
|
|
arr_ent[idx],arr_pro[idx],arr_sal[idx])
|
|
END FOR
|
|
FINISH REPORT reporte4
|
|
END IF
|
|
#-----------------------------------------------------------------------------
|
|
LET numero_msg = 1
|
|
CALL msg(numero_msg)
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION dsprmd002()
|
|
|
|
CONSTRUCT criterio ON a.programa,a.cod_sistema,a.no_solicitud,a.num_emp,
|
|
a.numero_act
|
|
FROM programa,cod_sistema,no_solicitud,num_emp,numero_act
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
LET selec =
|
|
"SELECT UNIQUE a.* FROM dstb00001 a WHERE a.status_t IS NULL AND ",
|
|
criterio CLIPPED," ORDER BY 1"
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE busca SCROLL CURSOR FOR comando
|
|
OPEN busca
|
|
|
|
FETCH FIRST busca INTO dstb01.*
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
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
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
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
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
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
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
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
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
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 "Escoger" "Presione <ESC> Para Actualizar <Ctrl-C> Para Cancelar"
|
|
LET numero_ant = dstb01.no_solicitud
|
|
|
|
INPUT BY NAME dstb01.cod_sistema THRU dstb01.objetivo2 WITHOUT DEFAULTS
|
|
|
|
AFTER FIELD no_solicitud
|
|
|
|
IF dstb01.no_solicitud != numero_ant THEN
|
|
SELECT UNIQUE no_solicitud FROM dstb00003
|
|
WHERE no_solicitud = dstb01.no_solicitud and
|
|
cod_sistema = dstb01.cod_sistema and
|
|
status_t is null
|
|
|
|
IF status != notfound THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD no_solicitud
|
|
END IF
|
|
END IF
|
|
|
|
AFTER FIELD cod_sistema
|
|
IF dstb01.cod_sistema IS NULL THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_sistema
|
|
END IF
|
|
|
|
{IF dstb01.cod_sistema != dstb01.programa[1,2] THEN
|
|
LET numero_msg = 242
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_sistema
|
|
END IF}
|
|
|
|
SELECT a.desc_sistema INTO dstb03.desc_sistema FROM dstb00003 a
|
|
WHERE a.cod_sistema = dstb01.cod_sistema AND a.status_t IS NULL
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_sistema
|
|
END IF
|
|
DISPLAY BY NAME dstb03.desc_sistema
|
|
|
|
AFTER FIELD num_emp
|
|
IF dstb01.num_emp IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
|
|
SELECT a.nom1_emp,a.apell1_emp INTO nombre1,apellido1 FROM adtb00003 a
|
|
WHERE a.num_emp = dstb01.num_emp
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
|
|
LET nombre = nombre1 CLIPPED," ",apellido1 CLIPPED
|
|
DISPLAY BY NAME nombre
|
|
|
|
BEFORE FIELD fecha_creacion
|
|
IF dstb01.numero_act > 1 THEN
|
|
NEXT FIELD fecha_modificacion
|
|
END IF
|
|
|
|
AFTER FIELD fecha_creacion
|
|
IF dstb01.fecha_creacion IS NULL THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_creacion
|
|
END IF
|
|
|
|
IF dstb01.fecha_creacion > TODAY THEN
|
|
LET numero_msg = 189
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_creacion
|
|
END IF
|
|
|
|
BEFORE FIELD fecha_modificacion
|
|
IF dstb01.numero_act = 1 THEN
|
|
NEXT FIELD descripcion
|
|
END IF
|
|
|
|
AFTER FIELD fecha_modificacion
|
|
IF dstb01.fecha_modificacion IS NULL THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_modificacion
|
|
END IF
|
|
|
|
IF dstb01.fecha_modificacion > TODAY THEN
|
|
LET numero_msg = 189
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_modificacion
|
|
END IF
|
|
|
|
IF dstb01.fecha_modificacion < dstb01.fecha_creacion THEN
|
|
LET numero_msg = 241
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_modificacion
|
|
END IF
|
|
NEXT FIELD objetivo1
|
|
|
|
AFTER FIELD descripcion
|
|
IF dstb01.descripcion IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD descripcion
|
|
END IF
|
|
|
|
END INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
LET opt1 = "C"
|
|
|
|
CALL entradas001()
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
CALL procesos001()
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
CALL salidas001()
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
CALL tablas001()
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
UPDATE dstb00001 SET dstb00001.* = dstb01.*
|
|
WHERE @programa = dstb01.programa AND @numero_act=dstb01.numero_act
|
|
|
|
UPDATE dstb00001 SET (us_mod,fech_mod) = (USER,CURRENT)
|
|
WHERE @programa = dstb01.programa AND @numero_act=dstb01.numero_act
|
|
|
|
DELETE FROM dstb00002
|
|
WHERE @programa = dstb01.programa AND @numero_act=dstb01.numero_act
|
|
|
|
DELETE FROM dstb00006
|
|
WHERE @programa = dstb01.programa AND @numero_act=dstb01.numero_act
|
|
|
|
LET maximo = 0
|
|
IF idx > idx1 THEN
|
|
LET maximo = idx
|
|
ELSE
|
|
LET maximo = idx1
|
|
END IF
|
|
|
|
IF maximo > idx2 THEN
|
|
LET maximo = maximo
|
|
ELSE
|
|
LET maximo = idx2
|
|
END IF
|
|
|
|
LET p = 0
|
|
FOR j = 1 TO maximo
|
|
IF (arr_ent[j] IS NULL OR arr_ent[j] = " ") AND
|
|
(arr_pro[j] IS NULL OR arr_pro[j] = " ") AND
|
|
(arr_sal[j] IS NULL OR arr_sal[j] = " ") THEN
|
|
LET p = p
|
|
ELSE
|
|
LET p = p + 1
|
|
INSERT INTO dstb00002 VALUES (dstb01.programa,dstb01.numero_act,p,
|
|
arr_ent[j],arr_pro[j],arr_sal[j],NULL,USER,
|
|
CURRENT,NULL,NULL)
|
|
END IF
|
|
END FOR
|
|
|
|
FOR j = 1 TO idx3
|
|
IF arr_tab[j] IS NOT NULL THEN
|
|
IF arr_tab[j] != " " THEN
|
|
INSERT INTO dstb00006 VALUES (dstb01.programa,dstb01.numero_act,
|
|
arr_tab[j],NULL,USER,CURRENT,NULL,NULL)
|
|
LET arr_tab[j] = " "
|
|
END IF
|
|
END IF
|
|
END FOR
|
|
|
|
# Impresion del documento cuando se esta modificando el programa
|
|
PROMPT "Desea Imprimir Este Documento (S/N)? " FOR CHAR opcion
|
|
LET opcion = upshift(opcion)
|
|
IF opcion = "S" THEN
|
|
START REPORT reporte4 TO PRINTER
|
|
FOR idx = 1 TO maximo
|
|
OUTPUT TO REPORT reporte4(dstb01.programa,dstb01.numero_act,p,
|
|
arr_ent[idx],arr_pro[idx],arr_sal[idx])
|
|
END FOR
|
|
FINISH REPORT reporte4
|
|
END IF
|
|
#-----------------------------------------------------------------------------
|
|
ERROR "(13) ACTUALIZACION EXITOSA"
|
|
|
|
COMMAND KEY ("L") "eLiminar"
|
|
UPDATE dstb00001 SET (status_t,us_mod,fech_mod) = ("E",USER,CURRENT)
|
|
WHERE @programa = dstb01.programa AND @numero_act=dstb01.numero_act
|
|
|
|
UPDATE dstb00002 SET (status_t,us_mod,fech_mod) = ("E",USER,CURRENT)
|
|
WHERE @programa = dstb01.programa AND @numero_act=dstb01.numero_act
|
|
|
|
UPDATE dstb00006 SET (status_t,us_mod,fech_mod) = ("E",USER,CURRENT)
|
|
WHERE @programa = dstb01.programa AND @numero_act=dstb01.numero_act
|
|
ERROR "(39) REGISTRO ELIMINADO"
|
|
COMMAND "Retornar"
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
FUNCTION entradas001()
|
|
|
|
OPEN WINDOW dsprwd001 AT 11,4 WITH FORM "dsfmwd001"
|
|
ATTRIBUTE (BORDER,FORM LINE FIRST + 1,COMMENT LINE LAST,MESSAGE LINE LAST -1)
|
|
MESSAGE "Ctrl-F Llena linea"
|
|
FOR i = 1 TO 200
|
|
LET arr_ent[i] = " "
|
|
END FOR
|
|
|
|
IF opt1 = "C" THEN
|
|
LET selec1 =
|
|
"SELECT a.linea_no,a.entradas FROM dstb00002 a ",
|
|
"WHERE a.programa = ? AND a.numero_act = ? AND ",
|
|
" a.entradas IS NOT NULL 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)
|
|
END IF
|
|
|
|
INPUT ARRAY arr_ent WITHOUT DEFAULTS FROM arr_ent1.*
|
|
# Esta parte es para facilitar insertar lineas
|
|
ON KEY(CONTROL-O)
|
|
LET idx = arr_count()
|
|
WHILE curr <= idx
|
|
LET arr_ent[idx+1] = arr_ent[idx]
|
|
LET idx = idx - 1
|
|
END WHILE
|
|
LET arr_ent[curr] = null
|
|
FOR idx = curr TO fila
|
|
DISPLAY arr_ent[idx] TO arr_ent1[idx].arr_ent
|
|
END FOR
|
|
# Marca el bloque para mover
|
|
ON KEY(CONTROL-P)
|
|
LET k1 = curr
|
|
ON KEY(CONTROL-B)
|
|
LET k2 = curr
|
|
ON KEY(CONTROL-U)
|
|
LET k3 = curr
|
|
FOR idx = k1 TO k2
|
|
LET arr_ent[k3] = arr_ent[idx]
|
|
LET k3 = k3 + 1
|
|
END FOR
|
|
CALL SET_COUNT(k3)
|
|
ON KEY(CONTROL-F)
|
|
LET arr_ent[curr] =
|
|
"-----------------------------------------------------------"
|
|
DISPLAY arr_ent[curr] TO arr_ent1[fila].arr_ent
|
|
BEFORE ROW
|
|
LET curr = ARR_CURR()
|
|
LET fila = SCR_LINE()
|
|
|
|
AFTER FIELD arr_ent
|
|
IF arr_ent[curr] IS NULL THEN
|
|
LET arr_ent[curr] = NULL
|
|
END IF
|
|
|
|
LET idx = 0
|
|
FOR p = 1 TO ARR_COUNT()
|
|
LET idx = idx + 1
|
|
END FOR
|
|
END INPUT
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
CLOSE WINDOW dsprwd001
|
|
END FUNCTION
|
|
|
|
FUNCTION procesos001()
|
|
|
|
OPEN WINDOW dsprwd002 AT 11,4 WITH FORM "dsfmwd002"
|
|
ATTRIBUTE (BORDER,FORM LINE FIRST + 1,COMMENT LINE LAST,MESSAGE LINE LAST -1)
|
|
MESSAGE "Ctrl-F Llena linea"
|
|
|
|
FOR i = 1 TO 200
|
|
LET arr_pro[i] = " "
|
|
END FOR
|
|
|
|
IF opt1 = "C" THEN
|
|
LET selec1 = "SELECT a.linea_no,a.proceso FROM dstb00002 a ",
|
|
"WHERE a.programa = ? AND a.numero_act = ? AND ",
|
|
" a.proceso IS NOT NULL 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)
|
|
END IF
|
|
|
|
INPUT ARRAY arr_pro WITHOUT DEFAULTS FROM arr_pro1.*
|
|
ON KEY(CONTROL-O)
|
|
LET idx = arr_count()
|
|
WHILE curr <= idx
|
|
LET arr_pro[idx+1] = arr_pro[idx]
|
|
LET idx = idx - 1
|
|
END WHILE
|
|
LET arr_pro[curr] = null
|
|
FOR idx = curr TO fila
|
|
DISPLAY arr_pro[idx] TO arr_pro1[idx].arr_pro
|
|
END FOR
|
|
# Marca el bloque para mover
|
|
ON KEY(CONTROL-P)
|
|
LET k1 = curr
|
|
ON KEY(CONTROL-B)
|
|
LET k2 = curr
|
|
ON KEY(CONTROL-U)
|
|
LET k3 = curr
|
|
FOR idx = k1 TO k2
|
|
LET arr_pro[k3] = arr_pro[idx]
|
|
LET k3 = k3 + 1
|
|
END FOR
|
|
CALL SET_COUNT(k3)
|
|
ON KEY(CONTROL-F)
|
|
LET arr_pro[curr] =
|
|
"-----------------------------------------------------------"
|
|
DISPLAY arr_pro[curr] TO arr_pro1[fila].arr_pro
|
|
BEFORE ROW
|
|
LET curr = ARR_CURR()
|
|
LET fila = SCR_LINE()
|
|
AFTER FIELD arr_pro
|
|
|
|
LET idx1 = 0
|
|
FOR p = 1 TO ARR_COUNT()
|
|
LET idx1 = idx1 + 1
|
|
END FOR
|
|
END INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
CLOSE WINDOW dsprwd002
|
|
END FUNCTION
|
|
|
|
FUNCTION salidas001()
|
|
|
|
OPEN WINDOW dsprwd003 AT 11,4 WITH FORM "dsfmwd003"
|
|
ATTRIBUTE (BORDER,FORM LINE FIRST + 1,COMMENT LINE LAST,MESSAGE LINE LAST -1)
|
|
MESSAGE "Ctrl-F Llena linea"
|
|
FOR i = 1 TO 200
|
|
LET arr_sal[i] = " "
|
|
END FOR
|
|
|
|
IF opt1 = "C" THEN
|
|
LET selec1 = "SELECT a.linea_no,a.salida FROM dstb00002 a ",
|
|
"WHERE a.programa = ? AND a.numero_act = ? AND ",
|
|
" a.salida IS NOT NULL 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)
|
|
END IF
|
|
|
|
INPUT ARRAY arr_sal WITHOUT DEFAULTS FROM arr_sal1.*
|
|
ON KEY(CONTROL-O)
|
|
LET idx = arr_count()
|
|
WHILE curr <= idx
|
|
LET arr_sal[idx+1] = arr_sal[idx]
|
|
LET idx = idx - 1
|
|
END WHILE
|
|
LET arr_sal[curr] = null
|
|
FOR idx = curr TO fila
|
|
DISPLAY arr_sal[idx] TO arr_sal1[idx].arr_sal
|
|
END FOR
|
|
# Marca el bloque para mover
|
|
ON KEY(CONTROL-P)
|
|
LET k1 = curr
|
|
ON KEY(CONTROL-B)
|
|
LET k2 = curr
|
|
ON KEY(CONTROL-U)
|
|
LET k3 = curr
|
|
FOR idx = k1 TO k2
|
|
LET arr_sal[k3] = arr_sal[idx]
|
|
LET k3 = k3 + 1
|
|
END FOR
|
|
CALL SET_COUNT(k3)
|
|
ON KEY(CONTROL-F)
|
|
LET arr_sal[curr] =
|
|
"-----------------------------------------------------------"
|
|
DISPLAY arr_sal[curr] TO arr_sal1[fila].arr_sal
|
|
BEFORE ROW
|
|
LET curr = ARR_CURR()
|
|
LET fila = SCR_LINE()
|
|
|
|
AFTER FIELD arr_sal
|
|
IF arr_sal[curr] IS NULL OR arr_sal[curr] = " " THEN
|
|
LET arr_sal[curr] = NULL
|
|
END IF
|
|
|
|
LET idx2 = 0
|
|
FOR p = 1 TO ARR_COUNT()
|
|
LET idx2 = idx2 + 1
|
|
END FOR
|
|
END INPUT
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
CLOSE WINDOW dsprwd003
|
|
END FUNCTION
|
|
|
|
FUNCTION tablas001()
|
|
|
|
OPEN WINDOW dsprwd006 AT 11,4 WITH FORM "dsfmwd006"
|
|
ATTRIBUTE (BORDER,FORM LINE FIRST + 1,COMMENT LINE LAST)
|
|
|
|
IF opt1 = "C" THEN
|
|
LET selec1 = "SELECT a.tabla FROM dstb00006 a ",
|
|
"WHERE a.programa = ? AND a.numero_act = ? ORDER BY 1 "
|
|
ELSE
|
|
LET selec1 = "SELECT a.tabla FROM dstb00006 a ",
|
|
"WHERE a.programa = ? AND a.numero_act = ?-1 ORDER BY 1 "
|
|
END IF
|
|
|
|
IF dstb01.numero_act = 1 AND opt1 = "A" THEN
|
|
INITIALIZE arr_tab TO NULL
|
|
ELSE
|
|
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)
|
|
END IF
|
|
|
|
INPUT ARRAY arr_tab WITHOUT DEFAULTS FROM arr_tab1.*
|
|
BEFORE ROW
|
|
LET curr = ARR_CURR()
|
|
LET fila = SCR_LINE()
|
|
|
|
AFTER FIELD arr_tab
|
|
IF arr_tab[curr] IS NOT NULL THEN
|
|
SELECT UNIQUE tabname FROM systables
|
|
WHERE tabname = arr_tab[curr]
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD arr_tab
|
|
END IF
|
|
|
|
FOR idx3 = 1 TO ARR_COUNT()
|
|
IF idx3 != curr THEN
|
|
IF arr_tab[curr] = arr_tab[idx3] THEN
|
|
LET numero_msg = 21
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD arr_tab
|
|
END IF
|
|
END IF
|
|
LET idx3 = idx3
|
|
END FOR
|
|
END IF
|
|
END INPUT
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
CLOSE WINDOW dsprwd006
|
|
END FUNCTION
|
|
|
|
REPORT reporte4(x)
|
|
DEFINE x RECORD
|
|
programa LIKE dstb00001.programa,
|
|
numero_act LIKE dstb00001.numero_act,
|
|
linea_no LIKE dstb00002.linea_no,
|
|
entradas LIKE dstb00002.entradas,
|
|
proceso LIKE dstb00002.proceso,
|
|
salida LIKE dstb00002.salida
|
|
END RECORD
|
|
DEFINE entr1 ARRAY[200] OF CHAR(60)
|
|
DEFINE proc1 ARRAY[200] OF CHAR(60)
|
|
DEFINE sali1 ARRAY[200] OF CHAR(60)
|
|
DEFINE sistema CHAR(35)
|
|
DEFINE tabla1 CHAR(9)
|
|
DEFINE l INTEGER
|
|
DEFINE negrillas_on,negrillas_off,comp_on,comp_off,normal CHAR(2)
|
|
DEFINE hora char(5)
|
|
|
|
OUTPUT
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
BOTTOM MARGIN 2
|
|
ORDER BY x.programa,x.numero_act,x.linea_no
|
|
|
|
FORMAT
|
|
PAGE HEADER
|
|
LET negrillas_on = ASCII 27,ASCII 69
|
|
LET negrillas_off = ASCII 27,ASCII 70
|
|
LET comp_on = ASCII 15
|
|
LET comp_off = ASCII 18
|
|
LET normal = ASCII 27, ASCII 80
|
|
LET hora = TIME
|
|
|
|
PRINT COLUMN 1, negrillas_on
|
|
PRINT COLUMN 1, "dsprmt002",
|
|
COLUMN 17, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
|
COLUMN 73, "Pag. ", PAGENO USING "###"
|
|
PRINT COLUMN 17, " GERENCIA DE INFORMATICA",
|
|
COLUMN 73, TODAY USING "dd/mm/yyyy"
|
|
PRINT COLUMN 17, " CREACION / MODIFICACION DE PROGRAMAS",
|
|
COLUMN 76, hora
|
|
SKIP 1 LINE
|
|
|
|
BEFORE GROUP OF x.programa
|
|
LET sistema = NULL
|
|
SELECT a.desc_sistema INTO sistema FROM dstb00003 a
|
|
WHERE a.cod_sistema = dstb01.cod_sistema
|
|
|
|
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
|
|
|
|
PRINT COLUMN 1, "----------------------------------------------------------",
|
|
"----------------------"
|
|
PRINT COLUMN 1, "NOMBRE DEL PROGRAMA: ", x.programa
|
|
PRINT COLUMN 1, "SISTEMA : ", sistema CLIPPED
|
|
PRINT COLUMN 1, "PROGRAMADOR: ", "(",dstb01.num_emp USING "####",") ",
|
|
nombre CLIPPED,
|
|
COLUMN 40, "NO.SOLICITUD : ", dstb01.no_solicitud using "###"
|
|
|
|
PRINT COLUMN 1, "FECHA CREACION : ", dstb01.fecha_creacion
|
|
USING "dd/mm/yyyy",
|
|
COLUMN 40, "ACTUALIZACION NO.: ", x.numero_act using "###"
|
|
IF x.numero_act > 1 THEN
|
|
PRINT COLUMN 1, "FECHA MODIFICACION : ", dstb01.fecha_modificacion
|
|
USING "dd/mm/yyyy"
|
|
END IF
|
|
PRINT COLUMN 1, "----------------------------------------------------------",
|
|
"----------------------"
|
|
PRINT negrillas_off
|
|
BEFORE GROUP OF x.numero_act
|
|
LET j = 0
|
|
|
|
ON EVERY ROW
|
|
IF j IS NULL THEN
|
|
LET j = 0
|
|
END IF
|
|
LET j = j + 1
|
|
|
|
{LET entr1[j] = NULL
|
|
LET proc1[j] = NULL
|
|
LET sali1[j] = NULL
|
|
}
|
|
LET entr1[j] = x.entradas
|
|
LET proc1[j] = x.proceso
|
|
LET sali1[j] = x.salida
|
|
|
|
AFTER GROUP OF x.numero_act
|
|
|
|
PRINT negrillas_on
|
|
PRINT COLUMN 1, "1. - DESCRIPCION DEL PROGRAMA: "
|
|
PRINT COLUMN 6, dstb01.descripcion
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, "2. - OBJETIVO (S): : "
|
|
PRINT COLUMN 6, dstb01.objetivo1
|
|
PRINT COLUMN 6, dstb01.objetivo2
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, "3. - DESCRIPCION PROCESAL: "
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, " 3-1. ENTRADA (S): "
|
|
FOR m = 1 TO j
|
|
IF entr1[m] IS NOT NULL THEN
|
|
IF entr1[m] != " " THEN
|
|
PRINT COLUMN 11, entr1[m]
|
|
END IF
|
|
END IF
|
|
END FOR
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, " 3-2. PROCESO: "
|
|
FOR m = 1 TO j
|
|
IF proc1[m] IS NOT NULL THEN
|
|
IF proc1[m] != " " THEN
|
|
PRINT COLUMN 11, proc1[m]
|
|
END IF
|
|
END IF
|
|
END FOR
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, " 3-3. SALIDA (S): "
|
|
FOR m = 1 TO j
|
|
IF sali1[m] IS NOT NULL THEN
|
|
IF sali1[m] != " " THEN
|
|
PRINT COLUMN 11, sali1[m]
|
|
END IF
|
|
END IF
|
|
END FOR
|
|
SKIP 1 LINE
|
|
|
|
DECLARE busca_tb CURSOR FOR
|
|
SELECT a.tabla FROM dstb00006 a
|
|
WHERE a.programa = x.programa AND a.numero_act = x.numero_act AND
|
|
a.status_t IS NULL ORDER BY 1
|
|
|
|
PRINT COLUMN 1, "4. - TABLA (S) QUE UTILIZA: "
|
|
LET l = 6
|
|
LET j = 0
|
|
LET m = 0
|
|
FOREACH busca_tb INTO tabla1
|
|
LET j = j + 1
|
|
LET m = m + 1
|
|
IF m = 1 THEN
|
|
PRINT COLUMN l, tabla1 CLIPPED;
|
|
LET l = l + 9
|
|
ELSE
|
|
PRINT COLUMN l, ", ",tabla1 CLIPPED;
|
|
LET l = l + 11
|
|
END IF
|
|
IF j = 5 THEN
|
|
PRINT COLUMN l," "
|
|
LET m = 0
|
|
LET l = 6
|
|
LET j = 0
|
|
END IF
|
|
END FOREACH
|
|
PRINT " "
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, "REVISADO POR: ","_____________",
|
|
COLUMN 50, "EN FECHA : ","___/___/___"
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, "PASADO POR : ","_____________",
|
|
COLUMN 50, "EN FECHA : ","___/___/___"
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, "ENTREGADO POR : ","_____________",
|
|
COLUMN 50, "ENTREGA NUM : ","_____________"
|
|
SKIP 1 LINE
|
|
PAGE TRAILER
|
|
PRINT " "
|
|
END REPORT
|