{ ------------------------------------------------------------------------------- PROGRAMA : ADPRRP040 OBJETIVO : LISTAR EL SEGURO SOCIAL POR EMPLEADO PROGRAMADOR : Oscar Castillo FECHA REALIZACION : Thursday, 23 November, 2000 ------------------------------------------------------------------------------- } GLOBALS "adprgb000.4gl" FUNCTION adprrp040() ## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE DEFINE solicita RECORD LIKE notb00008.*, nom1,nom2,apell1,apell2 CHAR(15), depto LIKE adtb00003.departamento, nomina LIKE notb00008.num_nomi, m_v98,m_v22 DECIMAL (10,2) WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM adfmrp040 FROM "adfmrp040" DISPLAY FORM adfmrp040 CALL pantalla() DISPLAY "adprrp040" AT 4,3 ATTRIBUTE(RED) DISPLAY "Seguro Social" 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 INPUT BY NAME nomina AFTER FIELD nomina IF nomina IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD nomina END IF SELECT * FROM notb00008 WHERE num_nomi = nomina IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD nomina END IF END INPUT ## AQUI SE INDICA EL CRITERIO DE BUSQUEDA DEL REPORTE CONSTRUCT BY NAME criterio ON a.tipo_emp,a.num_emp,a.departamento 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.* ", " FROM notb00008 a ", " WHERE a.status_t is null AND a.num_nomi = ? AND ", " a.cod_mov in (98,22) AND ",criterio clipped," ORDER BY 4,3 " 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 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 ## SE DECLARA EL CURSOR PARA BUSCAR LA INFORMACION SELECCIONADA DECLARE accion CURSOR FOR busca OPEN accion USING nomina DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) START REPORT list_solt TO "oscar" #archivo ## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE ## SALIDA AL REPORTE FOREACH accion INTO solicita.* 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 IF solicita.cod_mov = 98 THEN LET m_v98 = solicita.valor END IF IF solicita.cod_mov = 22 THEN LET m_v22 = solicita.valor END IF SELECT a.nom1_emp,a.nom2_emp,a.apell1_emp,a.apell2_emp,a.departamento INTO nom1,nom2,apell1,apell2,depto FROM adtb00003 a WHERE a.num_emp = solicita.num_emp AND a.status_t IS NULL LET nombre = nom1 CLIPPED," ",nom2 CLIPPED," ",apell1 CLIPPED," ",apell2 clipped OUTPUT TO REPORT list_solt(solicita.*,nombre,depto,m_v98,m_v22) END IF END FOREACH FINISH REPORT list_solt #RUN imprime CLEAR SCREEN END FUNCTION ## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE REPORT list_solt(x,p_nombre,p_depto,v98,v22) DEFINE x RECORD LIKE notb00008.* DEFINE p_depto LIKE adtb00003.departamento DEFINE nom_dep LIKE adtb00033.nom_dpto DEFINE p_nombre CHAR(60), v98,v22 DECIMAL (10,2) ## 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 ORDER BY p_depto,x.num_emp FORMAT PAGE HEADER LET hora = time ## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS PRINT COLUMN 1, letras.normal,letras.negrillas_on,letras.doble_on,letras.comp_on PRINT COLUMN 2, "adprrp040", 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, " Sistema de Administracion de Personal", COLUMN 73, today using "dd/mm/yyyy" PRINT COLUMN 17, " Seguro Social ", COLUMN 76, hora PRINT COLUMN 2, "---------------------------------------------------", "------------------------------", "-------------------------------------------" PRINT COLUMN 2, "Departamento", COLUMN 16, "Ficha Empleado", COLUMN 32, " Nombre", COLUMN 87, "Pagado Empresa", COLUMN 105, "Pagado Empleado" PRINT COLUMN 2, "----------------------------------------------------", "-----------------------------", "-------------------------------------------" PRINT letras.negrillas_off ## AQUI SE INDICA LA IMPRESION DEL DETALLE BEFORE GROUP OF p_depto SELECT a.nom_dpto INTO nom_dep FROM adtb00033 a WHERE a.departamento = p_depto AND a.status_t IS NULL PRINT letras.negrillas_on PRINT COLUMN 2, p_depto USING "#####"," ",nom_dep CLIPPED PRINT letras.negrillas_off BEFORE GROUP OF x.num_emp #ON EVERY ROW PRINT COLUMN 20, x.num_emp USING "###", COLUMN 35, p_nombre CLIPPED, COLUMN 90, v98 USING "###,###.##", COLUMN 108, v22 USING "###,###.##" AFTER GROUP OF p_depto SKIP 2 LINES PRINT COLUMN 10, "Total Por Departamento : ", COLUMN 90, GROUP SUM(v98) USING "#,###,###.##", COLUMN 108, GROUP SUM(V22) USING "#,###,###.##" ON LAST ROW SKIP 1 LINE PRINT COLUMN 10, "Total General : ", COLUMN 90, SUM(v98) USING "#,###,###.##", COLUMN 108, SUM(V22) USING "#,###,###.##" END REPORT