Files

220 lines
6.4 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : ADPRRP012
OBJETIVO : LISTAR LOS SOLICITANTES ORDENADOS POR PUESTOS
PROGRAMADOR : Ing. Betania Guerrero Perez
FECHA REALIZACION : Junio 24, 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 adprrp012()
END MAIN
FUNCTION adprrp012()
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
r_filename STRING, -- filename of Report Design Document including .4rp extension
r_output STRING, -- output format option
preview INTEGER -- TRUE/FALSE, to set preview option
## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
DEFINE solicitante RECORD
cod_sol LIKE adtb00012.cod_sol,
nom1_sol LIKE adtb00012.nom1_sol,
apell1_sol LIKE adtb00012.apell1_sol,
telefono LIKE adtb00012.telefono,
nom_puesto LIKE adtb00004.nom_puesto,
cod_puesto LIKE adtb00016.cod_puesto,
calle LIKE adtb00012.calle,
casa_nom LIKE adtb00012.casa_num,
barrio LIKE adtb00012.barrio,
urbanizacion LIKE adtb00012.urbanizacion,
p_companias LIKE companias.nombre
END RECORD
#WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM adfmrp002 FROM "adfmrp002"
DISPLAY FORM adfmrp002
DISPLAY "adprrp012" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Solicitantes Por Puesto" AT 6,31 ATTRIBUTE(BLACK)
## INDICA EL TIPO DE PAPEL NECESARIO PARA EL REPORTE. 1 - PAPEL 9 1/2 X 11
## 2 - PAPEL 14 7/8 X 11
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
#CALL defecto(impresor) RETURNING imprime, letras.*, archivo
## AQUI SE INDICA EL CRITERIO DE BUSQUEDA DEL REPORTE
CONSTRUCT criterio ON b.cod_puesto FROM cod_puesto
ON KEY(CONTROL-P)
# CALL busca_printer() RETURNING imprime,letras.*, archivo
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
## SE SELECCIONAN LOS CAMPOS NECESARIOS PARA EL REPORTE
LET SELEC =
"SELECT a.cod_sol,a.nom1_sol,a.apell1_sol,a.telefono,c.nom_puesto, ",
" b.cod_puesto ",
"FROM adtb00012 a, adtb00016 b, adtb00004 c ",
"WHERE a.cod_sol = b.cod_sol AND b.cod_puesto = c.cod_puesto AND ",
" a.status_t is null AND ",criterio clipped," ORDER BY 6,1"
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
## SE PREPARA LA INFORMACION SELECCIONADA
PREPARE busca FROM selec
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
## SE DECLARA EL CURSOR PARA BUSCAR LA INFORMACION SELECCIONADA
DECLARE accion CURSOR FOR busca
-- configure report engine; the functions prefixed fgl that are called here are part of the GRW API
LET r_filename = 'adprrp012.4rp'
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
LET r_output='SVG'
LET preview=1
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default
LET handler = fgl_report_commitCurrentSettings() -- commit changes
END IF
--run the report
IF handler IS NOT NULL THEN -- report engine was configured ok
START REPORT list_sol TO archivo
## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE
## SALIDA AL REPORTE
FOREACH accion INTO solicitante.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF status = NOTFOUND THEN
EXIT FOREACH
ELSE
OUTPUT TO REPORT list_sol(solicitante.*)
END IF
END FOREACH
FINISH REPORT list_sol
END IF
RUN imprime
CLEAR SCREEN
END FUNCTION
## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
REPORT list_sol(x)
DEFINE x RECORD
cod_sol LIKE adtb00012.cod_sol,
nom1_sol LIKE adtb00012.nom1_sol,
apell1_sol LIKE adtb00012.apell2_sol,
telefono LIKE adtb00012.telefono,
nom_puesto LIKE adtb00004.nom_puesto,
cod_puesto LIKE adtb00016.cod_puesto,
calle LIKE adtb00012.calle,
casa_nom LIKE adtb00012.casa_num,
barrio LIKE adtb00012.barrio,
urbanizacion LIKE adtb00012.urbanizacion,
p_companias LIKE companias.nombre
END RECORD
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE hora CHAR(5)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
FORMAT
PAGE HEADER
LET hora = time
## AQUI SE INDICA LA IMPRESION DEL DETALLE
BEFORE GROUP OF x.cod_puesto
PRINTX x.cod_puesto,
x.nom_puesto
ON EVERY ROW
PRINTX x.cod_sol,
x.nom1_sol,
x.apell1_sol,
x.telefono,
x.calle,
x.casa_nom,
x.barrio,
x.urbanizacion,
p_companias.nombre
ON LAST ROW
SKIP 1 LINE
# PRINT COLUMN 2, "Total de Registros Impresos = ", count(*) using "###"
END REPORT