{ ------------------------------------------------------------------------------- PROGRAMA : ADPRRP022 OBJETIVO : LISTA LOS EMPLEADOS QUE SE HAN SIDO LIQUIDADOS INDICANDO EL MONTO DE LIQUIDACION PROGRAMADOR : Ing. Betania Guerrero Perez FECHA REALIZACION : Julio 05, 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 adprrp022() END MAIN FUNCTION adprrp022() ## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE DEFINE liquida RECORD num_emp LIKE adtb00017.num_emp, departamento LIKE adtb00017.departamento, nivel_emp LIKE adtb00017.nivel_emp, cod_puesto LIKE adtb00017.cod_puesto, nom1_emp LIKE adtb00003.nom1_emp, apell1_emp LIKE adtb00003.apell1_emp, nom_puesto LIKE adtb00004.nom_puesto, fech_efec LIKE adtb00003.fech_efec, salario LIKE adtb00017.salario, liquidacion LIKE adtb00017.liquidacion END RECORD OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM adfmrp012 FROM "adfmrp012" DISPLAY FORM adfmrp012 CALL pantalla() DISPLAY "adprrp022" AT 4,3 ATTRIBUTE(RED) DISPLAY "Liquidacion Empleados" AT 6,32 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 ## SE INDICA EL RANGO DE FECHA DESEADO PARA LISTAR LOS EMPLEADOS LIQUIDADOS LET datos.fech_ini = NULL LET datos.fech_fin = NULL INPUT BY NAME datos.fech_ini,datos.fech_fin WITHOUT DEFAULTS ON KEY(CONTROL-P) CALL busca_printer() RETURNING imprime,letras.*, archivo AFTER FIELD fech_ini IF datos.fech_ini IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fech_ini END IF AFTER FIELD fech_fin IF datos.fech_fin IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fech_fin END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF EXIT INPUT END INPUT ## DEFINICION DEL CRITERIO DE BUSQUEDA PARA LA IMPRESION DEL REPORTE CONSTRUCT criterio ON a.num_emp FROM num_emp 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.num_emp,a.departamento,a.nivel_emp,a.cod_puesto,b.nom1_emp, ", " b.apell1_emp,c.nom_puesto,a.fech_efec,a.salario,a.liquidacion ", "FROM adtb00017 a,adtb00003 b,adtb00004 c ", "WHERE a.num_emp = b.num_emp AND a.departamento = b.departamento AND ", " a.nivel_emp = b.nivel_emp AND a.cod_puesto = b.cod_puesto AND ", " a.cod_puesto = c.cod_puesto AND a.cod_mto = 4 AND ", " a.status_t is null AND b.status_t IN ('T','D') AND ", " a.fech_efec BETWEEN ? AND ? AND ",criterio clipped, " ORDER BY 8,1" DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14 ATTRIBUTE (REVERSE,BOLD) ## SE PREPARA LA INFORMACION SELECCIONADA PREPARE busca FROM selec DECLARE accion CURSOR FOR busca OPEN accion USING datos.fech_ini,datos.fech_fin DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) START REPORT liq_ex TO archivo ## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE ## SALIDA AL REPORTE WHILE STATUS != NOTFOUND FETCH accion INTO liquida.* 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 liq_ex(liquida.*) END WHILE FINISH REPORT liq_ex RUN imprime CLEAR SCREEN END FUNCTION ## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE REPORT liq_ex(x) DEFINE x RECORD num_emp LIKE adtb00017.num_emp, departamento LIKE adtb00017.departamento, nivel_emp LIKE adtb00017.nivel_emp, cod_puesto LIKE adtb00017.cod_puesto, nom1_emp LIKE adtb00003.nom1_emp, apell1_emp LIKE adtb00003.apell1_emp, nom_puesto LIKE adtb00004.nom_puesto, fech_efec LIKE adtb00003.fech_efec, salario LIKE adtb00017.salario, liquidacion LIKE adtb00017.liquidacion END RECORD ## DEFINICION DE LAS VARIABLES DE IMPRESION DEFINE hora CHAR(5) DEFINE salida DATE DEFINE tot_liq DECIMAL(12,2) OUTPUT ## DEFINICION DE LOS MARGENES DE IMPRESIOON TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 3 FORMAT PAGE HEADER LET hora = time ## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS PRINT COLUMN 1, letras.comp_on, COLUMN 2, "adprrp022", COLUMN 14, letras.negrillas_on, COLUMN 45, "R A Y . O . V A C D O M I N I C A N A, S. A.", COLUMN 65, letras.negrillas_off, COLUMN 139, "Pag. ",pageno using "###" PRINT COLUMN 47, "Sistema de Administracion de Personal", COLUMN 134, today using "dd/mm/yyyy" PRINT COLUMN 55, "Liquidacion Empleados", COLUMN 137, hora SKIP 1 LINE PRINT COLUMN 2, "Desde: ",datos.fech_ini using "dd/mm/yyyy", COLUMN 20, "Hasta: ",datos.fech_fin using "dd/mm/yyyy" PRINT COLUMN 2, "---------------------------------------------------", "---------------------------------------------------", "--------------------------------------" PRINT COLUMN 84, "Fecha", COLUMN 96, "Fecha", COLUMN 111, "Ultimo", COLUMN 125, "Monto" PRINT COLUMN 2, "Ficha No.", COLUMN 18, "Nombre Empleado", COLUMN 53, "Puesto", COLUMN 84, "Entrada", COLUMN 96, "Salida", COLUMN 110, "Salario", COLUMN 119, "Liquidacion" PRINT COLUMN 2, "----------------------------------------------------", "---------------------------------------------------", "-------------------------------------" #SKIP 1 LINE ON EVERY ROW ## SE SELECCIONA LA FECHA DE SALIDA DEL EMPLEADO LIQUIDADO SELECT fech_efec INTO salida FROM adtb00003 WHERE num_emp = x.num_emp ## AQUI SE INDICA LA IMPRESION DEL DETALLE IF tot_liq IS NULL THEN LET tot_liq = 0 END IF LET tot_liq = tot_liq + x.liquidacion PRINT COLUMN 1, letras.negrillas_on, COLUMN 3, x.num_emp using "&&&&","-", COLUMN 8, x.departamento using "&&&&","-", COLUMN 13, x.nivel_emp using "&&","-", COLUMN 16, x.cod_puesto using "&&", COLUMN 20, x.nom1_emp clipped," ",x.apell1_emp clipped, COLUMN 51, letras.negrillas_off, COLUMN 56, x.nom_puesto, COLUMN 88, salida using "dd/mm/yyyy", COLUMN 100, x.fech_efec using "dd/mm/yyyy", COLUMN 109, x.salario using "#,###,###.##", COLUMN 122, x.liquidacion using "#,###,###.##" ON LAST ROW SKIP 1 LINE PRINT COLUMN 122, "------------" PRINT COLUMN 2, "Total de Registros Impresos = ",count(*) using "###", COLUMN 122, tot_liq USING "#,###,###.##" LET tot_liq = 0 ## AQUI SE APAGA EL CARACTER DE IMPRESION COMPRIMIDO PRINT ASCII 18 PRINT ASCII 27, ASCII 80 END REPORT