{ ------------------------------------------------------------------------------- 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