208 lines
6.4 KiB
Plaintext
208 lines
6.4 KiB
Plaintext
{
|
|
============================================================================
|
|
PROGRAMAS : CGPRCS003
|
|
OBJETIVO : VISUALIZAR LOS CHEQUES QUE HAN SIDO ENTREGADOS EN UN RANGO DE
|
|
FECHA
|
|
PROGRAMADOR : JUAN F. SOTO
|
|
FECHA : DICIEMBRE 08, 1995.
|
|
=============================================================================
|
|
}
|
|
GLOBALS
|
|
"cgprgb000.4gl"
|
|
DEFINE rango RECORD
|
|
fecha1 LIKE cgtb00032.fecha_ent,
|
|
fecha2 LIKE cgtb00032.fecha_ent
|
|
END RECORD,
|
|
p_beneficiario LIKE cgtb00005.portador,
|
|
select1 CHAR(150),
|
|
nombre_b1,nombre_b CHAR(30),
|
|
maestra RECORD LIKE cgtb00031.*,
|
|
no_existe CHAR(1),
|
|
p_monto DECIMAL(12,2)
|
|
|
|
DEFINE arr_ent ARRAY[300] OF RECORD
|
|
banco LIKE cgtb00032.banco,
|
|
nombre_bco LIKE cgtb00001.descripcion,
|
|
cheque_no LIKE cgtb00005.cheque_no,
|
|
fecha LIKE cgtb00032.fecha,
|
|
fecha_ent LIKE cgtb00032.fecha_ent,
|
|
monto LIKE cgtb00005.monto
|
|
END RECORD
|
|
|
|
FUNCTION cgprcs003()
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 24
|
|
|
|
OPEN FORM cgfmcs003 FROM "cgfmcs003"
|
|
DISPLAY FORM cgfmcs003
|
|
DISPLAY "Cheques Entregados " AT 6,30
|
|
DISPLAY "cgprcs003" AT 4,3
|
|
|
|
LET int_flag = FALSE
|
|
WHILE int_flag != TRUE
|
|
INPUT BY NAME rango.*
|
|
AFTER FIELD fecha1
|
|
IF rango.fecha1 is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha1
|
|
END IF
|
|
LET rango.fecha2 = today
|
|
DISPLAY BY NAME rango.fecha2
|
|
AFTER FIELD fecha2
|
|
IF rango.fecha2 is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha2
|
|
END IF
|
|
IF rango.fecha2 < rango.fecha1 THEN
|
|
LET numero_msg = 51
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha1
|
|
END IF
|
|
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
EXIT INPUT
|
|
END INPUT
|
|
|
|
CONSTRUCT BY NAME criterio ON a.cod_cro
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
EXIT WHILE
|
|
END IF
|
|
LET selec1 =
|
|
"SELECT a.cod_cro,a.beneficiario ",
|
|
"FROM cgtb00031 a,cgtb00032 b, OUTER cgtb00033 c ",
|
|
"WHERE a.cod_cro=b.cod_cro and a.cod_cro=c.cod_cro and ",
|
|
criterio clipped," ORDER BY a.cod_cro"
|
|
|
|
PREPARE comando4 FROM selec1
|
|
DECLARE busca4 SCROLL CURSOR FOR comando4
|
|
OPEN busca4
|
|
|
|
FETCH FIRST busca4 INTO maestra.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
CONTINUE WHILE
|
|
END IF
|
|
DISPLAY BY NAME maestra.beneficiario,maestra.cod_cro
|
|
|
|
MENU "OPCION"
|
|
COMMAND "Siguiente"
|
|
FETCH NEXT busca4 INTO maestra.*
|
|
IF status = notfound THEN
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
DISPLAY BY NAME maestra.beneficiario,maestra.cod_cro
|
|
COMMAND "Anterior"
|
|
FETCH PREVIOUS busca4 INTO maestra.*
|
|
IF status = notfound THEN
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
DISPLAY BY NAME maestra.beneficiario,maestra.cod_cro
|
|
COMMAND "Primero"
|
|
FETCH FIRST busca4 INTO maestra.*
|
|
IF status = notfound THEN
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
DISPLAY BY NAME maestra.beneficiario,maestra.cod_cro
|
|
COMMAND "Ultimo"
|
|
FETCH LAST busca4 INTO maestra.*
|
|
IF status = notfound THEN
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
DISPLAY BY NAME maestra.beneficiario,maestra.cod_cro
|
|
COMMAND "Ver"
|
|
|
|
DECLARE busca CURSOR FOR
|
|
SELECT a.* FROM cgtb00032 a
|
|
WHERE a.fecha_ent between rango.fecha1 and rango.fecha2 and
|
|
a.cod_cro = maestra.cod_cro and a.status_t is null
|
|
|
|
LET idx = 1
|
|
FOREACH busca INTO entrega.*
|
|
|
|
SELECT a.portador,a.monto INTO p_beneficiario,p_monto FROM cgtb00005 a
|
|
WHERE a.cheque_no = entrega.cheque_no and a.cuenta_no = entrega.banco
|
|
|
|
IF status = notfound THEN
|
|
LET p_beneficiario = null
|
|
LET status = 0
|
|
END IF
|
|
SELECT descripcion INTO nombre_b FROM cgtb00001
|
|
WHERE cuenta_no = entrega.banco
|
|
|
|
IF status = notfound THEN
|
|
LET nombre_b = "BANCO NO EXISTE"
|
|
END IF
|
|
LET arr_ent[idx].banco = entrega.banco
|
|
LET arr_ent[idx].nombre_bco = nombre_b
|
|
LET arr_ent[idx].cheque_no = entrega.cheque_no
|
|
LET arr_ent[idx].fecha = entrega.fecha
|
|
LET arr_ent[idx].fecha_ent = entrega.fecha_ent
|
|
LET arr_ent[idx].monto = p_monto
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
DECLARE busca1 CURSOR FOR
|
|
SELECT a.* FROM cgtb00033 a
|
|
WHERE a.fecha_ent between rango.fecha1 and rango.fecha2 and
|
|
a.cod_cro = maestra.cod_cro and a.status_t is null
|
|
|
|
FOREACH busca1 INTO entrega1.*
|
|
|
|
SELECT descripcion INTO nombre_b FROM cgtb00001
|
|
WHERE cuenta_no = entrega.banco
|
|
|
|
IF status = notfound THEN
|
|
LET nombre_b = "BANCO NO EXISTE"
|
|
END IF
|
|
|
|
LET arr_ent[idx].banco = entrega.banco
|
|
LET arr_ent[idx].nombre_bco = nombre_b
|
|
LET arr_ent[idx].cheque_no = entrega1.cheque_no
|
|
LET arr_ent[idx].fecha = entrega1.fecha
|
|
LET arr_ent[idx].fecha_ent = entrega1.fecha_ent
|
|
LET arr_ent[idx].monto = entrega1.monto
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
IF idx = 1 THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT OPTION "Siguiente"
|
|
END IF
|
|
IF idx > 1 THEN
|
|
CALL set_count(idx - 1)
|
|
DISPLAY ARRAY arr_ent TO scr_ent.*
|
|
CLEAR FORM
|
|
DISPLAY BY NAME maestra.beneficiario,maestra.cod_cro,
|
|
rango.fecha1,rango.fecha2
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
EXIT WHILE
|
|
END IF
|
|
END IF
|
|
COMMAND "Retornar"
|
|
CLEAR FORM
|
|
EXIT MENU
|
|
END MENU
|
|
END WHILE
|
|
END FUNCTION
|