{ ------------------------------------------------------------------------------- PROGRAMA : ADPRRP035 OBJETIVO : Listar las informaciones Complementarias del reporte ADPRRP011 PROGRAMADOR : JUAN F. SOTO FECHA REALIZACION : Noviembre 7, 1995 ------------------------------------------------------------------------------- } GLOBALS "noprgb000.4gl" DEFINE salir,tipo_l CHAR(1), lj INTEGER FUNCTION noprrp035() ## SE DEFINE EL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA EL REPORTE DEFINE list_emp RECORD num_emp LIKE adtb00003.num_emp, nom1_emp LIKE adtb00003.nom1_emp, nom2_emp LIKE adtb00003.nom1_emp, apell1_emp LIKE adtb00003.apell1_emp, apell2_emp LIKE adtb00003.apell1_emp, cedula LIKE adtb00003.cedula, serie LIKE adtb00003.serie, fech_nac LIKE adtb00003.fech_nac, fech_efec LIKE adtb00003.fech_efec, estado_civil LIKE adtb00003.estado_civil, sexo LIKE adtb00034.sexo END RECORD #WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM nofmrp035 FROM "nofmrp035" DISPLAY FORM nofmrp035 CALL pantalla() DISPLAY "noprrp035" AT 4,3 DISPLAY "Empleados Activos" AT 6,34 ## INDICA EL PAPEL NECESARIO PARA IMPRIMIR EL REPORTE. 1 - PAPEL 9 1/2 X 11 ## 2 - PAPEL 14 7/8 X 11 LET tipo_papel = 2 CALL msgrp000(tipo_papel) ## AQUI SE DIGITA LA VARIABLE QUE INDICA LA CONDICION DEL REPORTE, ES DECIR ## SI SE TRATA DE EMPLEADOS SEMANALES O QUINCENALES CONSTRUCT BY NAME criterio ON a.num_emp,a.nomina IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LABEL pide: PROMPT "Listado Numerico o Alfabetico (N/A)? " FOR CHAR tipo_l LET tipo_l = UPSHIFT(tipo_l) IF tipo_l != "N" AND tipo_l != "A" THEN GOTO pide END IF ## SE SELECCIONAN LOS CAMPOS NECESARIOS PARA EL REPORTE DE LOS QUINCENALES IF tipo_l = "N" THEN LET SELEC = "SELECT UNIQUE a.num_emp,a.nom1_emp,a.nom2_emp,", " a.apell1_emp,a.apell2_emp,a.cedula,a.serie,a.fech_nac, ", " a.fech_efec,a.estado_civil ", "FROM adtb00003 a ", "WHERE ",criterio clipped," AND (a.status_t is null OR a.status_t = 'I') ", "ORDER BY 1 " END IF IF tipo_l = "A" THEN LET SELEC = "SELECT UNIQUE a.num_emp,a.nom1_emp,a.nom2_emp,", " a.apell1_emp,a.apell2_emp,a.cedula,a.serie,a.fech_nac, ", " a.fech_efec,a.estado_civil ", "FROM adtb00003 a ", "WHERE ",criterio clipped," AND (a.status_t is null OR a.status_t = 'I') ", "ORDER BY 4 " END IF DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14 ATTRIBUTE (REVERSE,BOLD) ## AQUI SE PREPARA LA INFORMACION SELECCIONADA PREPARE busca FROM selec DECLARE accion CURSOR FOR busca OPEN accion DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) START REPORT nace TO "C:\\archivo" ## AQUI SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE ## SALIDA AL REPORTE LET salir = "N" WHILE salir != "S" FETCH accion INTO list_emp.* IF STATUS = NOTFOUND THEN LET salir = "S" EXIT WHILE ELSE LET salir = "N" END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF OUTPUT TO REPORT nace(list_emp.*) END WHILE FINISH REPORT nace CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION ## AQUI SE DEFINE EL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE REPORT nace(x) DEFINE x RECORD num_emp LIKE adtb00003.num_emp, nom1_emp LIKE adtb00003.nom1_emp, nom2_emp LIKE adtb00003.nom1_emp, apell1_emp LIKE adtb00003.apell1_emp, apell2_emp LIKE adtb00003.apell1_emp, cedula LIKE adtb00003.cedula, serie LIKE adtb00003.serie, fech_nac LIKE adtb00003.fech_nac, fech_efec LIKE adtb00003.fech_efec, estado_civil LIKE adtb00003.estado_civil, sexo LIKE adtb00034.sexo END RECORD ## DEFINICION DE LAS VARIABLES DE IMPRESION DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(2) DEFINE negrillas_off CHAR(2) DEFINE comp_on CHAR(2) DEFINE comp_off CHAR(2) DEFINE doce CHAR(2) DEFINE normal CHAR(2) DEFINE hora CHAR(5) DEFINE l SMALLINT DEFINE varia CHAR(12), m_sexo,m_civil CHAR(10), nom_provincia CHAR(20), cod_prov,codigo_sol SMALLINT OUTPUT ## DEFINICION DE LOS MARGENES DE IMPRESION TOP MARGIN 0 LEFT MARGIN 2 BOTTOM MARGIN 4 FORMAT PAGE HEADER LET doble_on = ASCII 14 LET doble_off = ASCII 20 LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 27, ASCII 70 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET doce = ASCII 27, ASCII 77 LET normal = ASCII 27, ASCII 80 LET hora = time LET lj = (157 - LENGTH(p_companias.nombre CLIPPED))/2 ## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS PRINT COLUMN 1, doce,comp_on,negrillas_on PRINT COLUMN 1, "noprrp035", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 150, "Pag. ",pageno using "###" PRINT COLUMN 60, "Sistema de Administracion de Personal", COLUMN 150, today using "dd/mm/yy" PRINT COLUMN 60, " Maestra de Personal ", COLUMN 153, hora PRINT doce,comp_on PRINT COLUMN 2, "---------------------------------------------------", "---------------------------------------------------", "------------------------------------------------------" PRINT COLUMN 103, "Estado", COLUMN 115, "Fecha de", COLUMN 127, "Lugar de", COLUMN 148, "Fecha de" PRINT COLUMN 2, "Codigo No.", COLUMN 13, "Nombre Empleado", COLUMN 74, "Cedula-Serie", COLUMN 91, "Sexo", COLUMN 103, "Civil ", COLUMN 115, "Entrada", COLUMN 127, "Nacimiento", COLUMN 148, "Nacimiento" PRINT COLUMN 2, "---------------------------------------------------", "---------------------------------------------------", "------------------------------------------------------" ON EVERY ROW # Busca el sexo de cada empleado y como la tabla esta estructurada para el # Sexo de los familiares tambien, entonces para identificar el sexo del empleado # hay distinguirlo con el codigo del parentesco(cod_par) que es cero(0). SELECT @sexo INTO x.sexo FROM adtb00021 WHERE @num_emp = x.num_emp IF x.sexo = "M" THEN LET m_sexo = "MASCULINO" END IF IF x.sexo = "F" THEN LET m_sexo = "FEMENINO" END IF IF x.sexo IS NULL THEN LET m_sexo = "NO DIGITADO" END IF IF x.estado_civil = "C" THEN LET m_civil = "CASADO" END IF IF x.estado_civil = "S" THEN LET m_civil = "SOLTERO" END IF IF x.estado_civil IS NULL THEN LET m_civil = "NULO" END IF # Busqueda del codigo del solicitante SELECT MAX(cod_sol) INTO codigo_sol FROM adtb00017 WHERE num_emp = x.num_emp # Busqueda del codigo de la provincia en que nacio SELECT unique cod_provincia INTO cod_prov FROM adtb00012 WHERE cod_sol = codigo_sol # Busqueda del nombre de la provincia en que nacio SELECT unique nombre_provincia INTO nom_provincia FROM vetb00020 WHERE cod_provincia = cod_prov PRINT COLUMN 3, x.num_emp USING "&&&&", COLUMN 14, x.apell1_emp clipped," ",x.apell2_emp clipped," ", x.nom1_emp clipped," ",x.nom2_emp clipped," ", COLUMN 72, x.cedula using "#########","-",x.serie using "&&&&", COLUMN 91, m_sexo clipped, COLUMN 103, m_civil clipped, COLUMN 115, x.fech_efec using "dd/mm/yy", COLUMN 125, nom_provincia, COLUMN 148, x.fech_nac using "dd/mm/yy" ON LAST ROW skip 1 line PRINT COLUMN 2, "Total de Registros Impresos = ", count(*) using "###" PRINT ASCII 27, ASCII 80 PRINT comp_off END REPORT