190 lines
4.9 KiB
Plaintext
190 lines
4.9 KiB
Plaintext
{
|
|
-------------------------------------------------------------------
|
|
PROGRAMA : CGMNRP001
|
|
OBJETIVO : Menu de Entradas de Diario.
|
|
PROGRAMADOR : Ing. Juan Francisco Soto
|
|
FECHA REALIZACION : Octubre 14, 1993
|
|
-------------------------------------------------------------------
|
|
}
|
|
SCHEMA smarmotech
|
|
|
|
GLOBALS
|
|
DEFINE bandera,p,idx,numero_msg,i,elije,r SMALLINT
|
|
DEFINE primera,continua CHAR(1)
|
|
DEFINE ejecuta CHAR(44)
|
|
END GLOBALS
|
|
|
|
DEFINE rp_entrada ARRAY[500] OF RECORD
|
|
entrada_no SMALLINT,
|
|
descripcion CHAR(60),
|
|
prog_4gl CHAR(9)
|
|
END RECORD,
|
|
p_compania RECORD LIKE companias.*,
|
|
usuarios,clave CHAR(50)
|
|
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
|
|
|
|
CONNECT to "smarmotech" USER usuarios USING clave
|
|
SELECT a.* INTO p_compania.* FROM companias a
|
|
|
|
CALL cgmnrp001()
|
|
END MAIN
|
|
|
|
FUNCTION cgmnrp001()
|
|
WHENEVER ERROR CONTINUE
|
|
OPTIONS
|
|
PROMPT LINE 8,
|
|
HELP FILE "cgpray000.exe",
|
|
HELP KEY CONTROL-W,
|
|
MESSAGE LINE 24
|
|
CLEAR SCREEN
|
|
CALL pantalla()
|
|
DISPLAY "Entradas de Diario" AT 6,31
|
|
DISPLAY "cgmnrp001" AT 4,3 ATTRIBUTE(blue)
|
|
|
|
DECLARE busca CURSOR FOR
|
|
SELECT entrada_no,descripcion,prog_4gl FROM cgtb00011
|
|
WHERE status_t is null
|
|
|
|
ORDER BY 1
|
|
|
|
LET idx = 1
|
|
FOREACH busca INTO rp_entrada[idx].*
|
|
|
|
LET idx = idx + 1
|
|
#-----------------------------------------------------------------------------
|
|
END FOREACH
|
|
|
|
LET p = 0
|
|
LABEL vuelve:
|
|
LET r = 10
|
|
LET continua = "N"
|
|
IF i >= idx AND elije is null THEN
|
|
LET p = 0
|
|
END IF
|
|
FOR i = 1 to idx
|
|
# desplegue de opciones para la determinacion de la entrada
|
|
|
|
IF i > p THEN
|
|
IF rp_entrada[i].descripcion is not null THEN
|
|
DISPLAY i,"- ","(",rp_entrada[i].entrada_no,")",
|
|
rp_entrada[i].descripcion," ",
|
|
rp_entrada[i].prog_4gl AT r,1
|
|
LET r = r + 1
|
|
END IF
|
|
END IF
|
|
# Si la variable que incrementa la linea de desplegue es igual a 21 donde se
|
|
# encuentra la entiqueta de salida el desplegue se detiene
|
|
IF r > 19 THEN
|
|
LET p = i
|
|
LET continua = "S"
|
|
EXIT FOR
|
|
END IF
|
|
END FOR
|
|
IF continua = "S" THEN
|
|
DISPLAY "<Enter> Continuacion Menu" AT 20,1
|
|
END IF
|
|
DISPLAY "<Ctrl-C> Retorna Menu Anterior " AT 21,18
|
|
ATTRIBUTE (BOLD)
|
|
|
|
PROMPT " OPCION: " FOR elije HELP 2
|
|
|
|
CALL integridad()
|
|
IF bandera = 1 THEN
|
|
LET bandera = 0
|
|
RETURN
|
|
END IF
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
IF elije is null THEN
|
|
CLEAR SCREEN
|
|
CALL pantalla()
|
|
DISPLAY "Entradas" AT 6,36
|
|
DISPLAY "cgmnrp001" AT 4,3 ATTRIBUTE(blue)
|
|
GOTO vuelve
|
|
END IF
|
|
|
|
LET r = 10
|
|
LET primera = "S"
|
|
FOR i = 1 to elije
|
|
IF r > 19 and primera = "S" THEN
|
|
LET r = 10
|
|
LET primera = "N"
|
|
END IF
|
|
LET r = r + 1
|
|
END FOR
|
|
LET r = r - 1
|
|
LET i = i - 1
|
|
DISPLAY i,"- ","(",rp_entrada[elije].entrada_no,")",
|
|
rp_entrada[elije].descripcion," ",
|
|
rp_entrada[elije].prog_4gl AT r,1 ATTRIBUTE(BOLD)
|
|
|
|
LET ejecuta = "fglrun %FGLPROG%\\",
|
|
rp_entrada[elije].prog_4gl clipped
|
|
RUN ejecuta WITHOUT WAITING
|
|
# DISPLAY ejecuta at 24,1
|
|
END FUNCTION
|
|
|
|
# Desplega pantalla con logo de la compania
|
|
FUNCTION pantalla()
|
|
DEFINE fecha CHAR(8),
|
|
hora char(5)
|
|
LET fecha = today USING "dd/mm/yy"
|
|
LET hora = time
|
|
DISPLAY "M A R M O T E C H, S. A." AT 4,17
|
|
ATTRIBUTE (REVERSE,blue)
|
|
DISPLAY fecha AT 4,70 ATTRIBUTE (blue)
|
|
DISPLAY "Sistema de Contabilidad General" AT 5,24
|
|
DISPLAY hora AT 6,73 ATTRIBUTE(blue)
|
|
|
|
CALL fgl_drawbox(5,79,3,1)
|
|
CALL fgl_drawbox(1,79,22,1)
|
|
END FUNCTION
|
|
{
|
|
Esta funcion se utiliza para desplegar mensajes de errores en todos
|
|
los sistemas de Ray-O-Vac Dominicana.
|
|
Esta funcion busca el mensaje deseado en la tabla "msgtable" y lo
|
|
despliega en la linea de mensajes
|
|
}
|
|
|
|
FUNCTION msg(numero_msg)
|
|
DEFINE numero_msg SMALLINT
|
|
DEFINE descripcion CHAR (60)
|
|
SELECT desc_msg INTO descripcion FROM msgtable
|
|
WHERE cod_msg = numero_msg
|
|
|
|
IF status = NOTFOUND THEN
|
|
LET numero_msg = 22
|
|
SELECT desc_msg INTO descripcion FROM msgtable
|
|
WHERE cod_msg = numero_msg
|
|
ERROR descripcion
|
|
ELSE
|
|
ERROR descripcion
|
|
LET numero_msg = 0
|
|
END IF
|
|
END FUNCTION
|
|
|
|
FUNCTION integridad()
|
|
IF sqlca.sqlcode < 0 THEN
|
|
LET numero_msg = sqlca.sqlcode
|
|
CALL msg(numero_msg)
|
|
DISPLAY numero_msg AT 23,70
|
|
LET bandera = 1
|
|
LET status = 0
|
|
SLEEP 2
|
|
RETURN
|
|
END IF
|
|
RETURN
|
|
END FUNCTION
|