{ ------------------------------------------------------------------------------- PROGRAMA : ADPRRP036 OBJETIVO : Listar las informaciones generales de los Empleados Quincenales y Semanales PROGRAMADOR : Juan F. Soto FECHA REALIZACION : Marzo 22, 1996 ------------------------------------------------------------------------------- } GLOBALS "adprgb000.4gl" DEFINE tipo_l CHAR(1) FUNCTION adprrp036() ## SE DEFINE EL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA EL REPORTE DEFINE list_emp RECORD num_emp LIKE adtb00003.num_emp, nivel_emp LIKE adtb00003.nivel_emp, cod_puesto LIKE adtb00003.cod_puesto, nom1_emp LIKE adtb00003.nom1_emp, nom2_emp LIKE adtb00003.nom2_emp, apell1_emp LIKE adtb00003.apell1_emp, apell2_emp LIKE adtb00003.apell2_emp, cedula LIKE adtb00003.cedula, serie LIKE adtb00003.serie, nom_puesto LIKE adtb00004.nom_puesto, tipo_sangre LIKE adtb00003.tipo_sangre END RECORD #WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN CALL pantalla() DISPLAY "adprrp036" AT 4,3 ATTRIBUTE(RED) DISPLAY "Maestra Empleado Resumen" AT 6,28 ATTRIBUTE(BLACK) ## 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) CALL defecto(impresor) RETURNING imprime,letras.*, archivo ## AQUI SE DIGITA LA VARIABLE QUE INDICA LA CONDICION DEL REPORTE, ES DECIR ## SI SE TRATA DE EMPLEADOS SEMANALES O QUINCENALES LABEL pide: PROMPT "Listado Numerico o Alfabetico (N/A)? " FOR CHAR tipo_l LET tipo_l = UPSHIFT(tipo_l) IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF IF tipo_l IS NULL THEN LET tipo_l = "K" END IF IF tipo_l != "N" AND tipo_l != "A" THEN GOTO pide END IF IF decide IS NULL THEN LET decide = "S" 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.nivel_emp,a.cod_puesto, ", " a.nom1_emp,a.nom2_emp,a.apell1_emp,a.apell2_emp,a.cedula,a.serie, ", " b.nom_puesto,a.tipo_sangre ", "FROM adtb00003 a,adtb00004 b ", "WHERE a.cod_puesto=b.cod_puesto AND ", " a.num_emp != 888 AND ", " (a.status_t is null OR ", " a.status_t NOT IN('D','E','T')) ", "ORDER BY 1 " ELSE LET SELEC = "SELECT UNIQUE a.num_emp,a.nivel_emp,a.cod_puesto, ", " a.nom1_emp,a.nom2_emp,a.apell1_emp,a.apell2_emp,a.cedula,a.serie, ", " b.nom_puesto,a.tipo_sangre ", "FROM adtb00003 a,adtb00004 b ", "WHERE a.cod_puesto=b.cod_puesto AND ", " a.num_emp != 888 AND ", " (a.status_t is null OR ", " a.status_t NOT IN('D','E','T')) ", "ORDER BY 6,7,4,5 " 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 emplear1 TO archivo ## AQUI SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE ## SALIDA AL REPORTE WHILE STATUS != NOTFOUND FETCH accion INTO list_emp.* IF STATUS = NOTFOUND THEN EXIT WHILE END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF OUTPUT TO REPORT emplear1(list_emp.*) END WHILE FINISH REPORT emplear1 RUN imprime CLEAR SCREEN END FUNCTION ## AQUI SE DEFINE EL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE REPORT emplear1(x) DEFINE x RECORD num_emp LIKE adtb00003.num_emp, nivel_emp LIKE adtb00003.nivel_emp, cod_puesto LIKE adtb00003.cod_puesto, nom1_emp LIKE adtb00003.nom1_emp, nom2_emp LIKE adtb00003.nom2_emp, apell1_emp LIKE adtb00003.apell1_emp, apell2_emp LIKE adtb00003.apell2_emp, cedula LIKE adtb00003.cedula, serie LIKE adtb00003.serie, nom_puesto LIKE adtb00004.nom_puesto, tipo_sangre LIKE adtb00003.tipo_sangre END RECORD ## DEFINICION DE LAS VARIABLES DE IMPRESION DEFINE hora CHAR(5) DEFINE l SMALLINT DEFINE varia CHAR(12) OUTPUT ## DEFINICION DE LOS MARGENES DE IMPRESION TOP MARGIN 0 LEFT MARGIN 2 BOTTOM MARGIN 4 FORMAT PAGE HEADER LET hora = time ## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS PRINT COLUMN 1, letras.comp_on,letras.negrillas_on PRINT COLUMN 1, "adprrp036", COLUMN 44, "R A Y . O . V A C D O M I N I C A N A, S. A.", COLUMN 128, "Pag. ",pageno using "###" PRINT COLUMN 44, " Sistema de Administracion de Personal", COLUMN 128, today using "dd/mm/yyyy" PRINT COLUMN 44, " Maestra de Personal ", COLUMN 131, hora PRINT COLUMN 2, "---------------------------------------------------", "---------------------------------------------------" , "-------------------------------" PRINT COLUMN 2, "FICHA NO.", COLUMN 12, "NOMBRE EMPLEADO", COLUMN 70, "CARGO", COLUMN 110, "CEDULA", COLUMN 125, "TIPO SANGRE" PRINT COLUMN 2, "---------------------------------------------------", "---------------------------------------------------" , "-------------------------------" PRINT letras.negrillas_off ## AQUI SE INDICA LA IMPRESION DEL DETALLE ON EVERY ROW PRINT COLUMN 3, x.num_emp USING "&&&&"; IF tipo_l = "N" THEN PRINT COLUMN 12, x.nom1_emp clipped," ",x.nom2_emp clipped," ", x.apell1_emp clipped," ",x.apell2_emp; ELSE PRINT COLUMN 12,x.apell1_emp clipped," ",x.apell2_emp clipped, " ", x.nom1_emp clipped," ",x.nom2_emp; END IF PRINT COLUMN 70, x.nom_puesto, COLUMN 105, x.cedula using "#<<<<<<<<","-",x.serie using "&&&&", COLUMN 125, x.tipo_sangre ON LAST ROW SKIP 1 LINE PRINT COLUMN 2, "Total de Registros Impresos = ", count(*) using "###" PRINT letras.comp_off END REPORT