Files
MBS/PROYECTO/nodir/noprrp026.err
T

363 lines
13 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : NOPRRP026
OBJETIVO : LISTAR LAS HORAS EXTRAS DE LOS EMPLEADOS
PROGRAMADOR : Ing. Betania Guerrero Perez
FECHA REALIZACION : Septiembre 07, 1993
-------------------------------------------------------------------------------
}
GLOBALS "noprgb000.4gl"
FUNCTION noprrp026()
DEFINE fecha_inicial,fecha_final DATE
DEFINE tipo CHAR(1)
DEFINE h_35,h_100,v_35,v_100 DECIMAL(12,2)
DEFINE fecha1,fecha2 DATE
## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
DEFINE extras RECORD
num_emp LIKE adtb00003.num_emp,
departamento LIKE adtb00003.departamento,
nivel LIKE adtb00003.nivel_emp,
cod_puesto LIKE adtb00003.cod_puesto,
nom1_emp CHAR(10),
apell1_emp CHAR(10),
cod_mov LIKE notb00008.cod_mov,
cantidad LIKE notb00008.cantidad,
valor LIKE notb00008.valor
END RECORD
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM nofmrp026 FROM "nofmrp026"
DISPLAY FORM nofmrp026
CALL pantalla()
DISPLAY "noprrp026" AT 4,3
DISPLAY "Horas Extras Empleados" AT 6,32
## 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)
## AQUI SE INDICA EL CRITERIO DE BUSQUEDA DEL REPORTE
INPUT BY NAME fecha_inicial,fecha_final,tipo
AFTER FIELD fecha_inicial
IF fecha_inicial IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
AFTER FIELD fecha_final
IF fecha_final IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF fecha_inicial > fecha_final THEN
LET numero_msg = 51
CALL msg(numero_msg)
NEXT FIELD tipo_emp
END IF
AFTER FIELD tipo
IF tipo IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD tipo
END IF
END INPUT
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
DECLARE buscar CURSOR FOR
SELECT a.num_emp,b.departamento,b.nivel_emp,b.cod_puesto,b.nom1_emp,
b.apell1_emp,a.cod_mov,SUM(a.cantidad),SUM(a.valor)
FROM adtb00003 b,notb00008 a
WHERE a.num_emp = b.num_emp AND a.tipo_emp = tipo AND a.cod_mov IN (1,2,3)
AND a.fecha BETWEEN fecha_inicial AND fecha_final
AND b.status_t IS NULL
GROUP BY 1,2,3,4,5,6,7
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
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
START REPORT extras10 TO "C:\\archivo"
## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE
## SALIDA AL REPORTE
FOREACH buscar INTO extras.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
OUTPUT TO REPORT extras10(extras.*,fecha1,fecha2)
END FOREACH
FINISH REPORT extras10
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
REPORT extras10(x,fech1,fech2)
DEFINE x RECORD
num_emp LIKE notb00008.num_emp,
departamento LIKE adtb00003.departamento,
nivel LIKE adtb00003.nivel_emp,
cod_puesto LIKE adtb00003.cod_puesto,
nom1_emp CHAR(10),
apell1_emp CHAR(10),
cod_mov LIKE notb00008.cod_mov,
cantidad LIKE notb00008.cantidad,
valor LIKE notb00008.valor
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(11)
DEFINE fech1,fech2 DATE
DEFINE descu,descuento,porciento1,porciento2,acumulado DECIMAL(5,2)
DEFINE acumulado1,total,total1,total2,total3,total4 DECIMAL(12,2)
DEFINE descuento1,porcentaje1,porcentaje2,acumula,acumula1 DECIMAL(5,2),
nombre_dp CHAR(30),
h_nor,v_nor DECIMAL(12,2)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
ORDER BY x.departamento,x.num_emp,x.cod_mov
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 l = (132 - LENGTH(p_companias.nombre clipped))/2
IF tipo = "Q" THEN
| fglcomp: The symbol "tipo" does not represent a defined variable.
| See error number -4369.
LET varia = "Horas Extras Empleados Quincenales"
END IF
IF tipo = "S" THEN
| fglcomp: The symbol "tipo" does not represent a defined variable.
| See error number -4369.
LET varia = "Horas Extras Empleados Semanales"
END IF
## SE CALCULA LA LONGITUD DE LA VARIABLE -VARIA-
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
PRINT COLUMN 1, comp_on,doce,negrillas_on
PRINT COLUMN 2, "noprrp026",
COLUMN l, p_companias.nombre CLIPPED,
COLUMN 125, "Pag. ",pageno using "###"
PRINT COLUMN 36, "Sistema de Nomina",
COLUMN 125, today using "dd/mm/yy"
LET l = (132 - LENGTH(varia CLIPPED))/2
PRINT COLUMN l, varia CLIPPED,
COLUMN 128, hora
SKIP 1 LINE
PRINT COLUMN 1, "Del ", fecha_inicial USING "dd/mm/yy",
| fglcomp: The symbol "fecha_inicial" does not represent a defined variable.
| See error number -4369.
" Al ", fecha_final USING "dd/mm/yy"
| fglcomp: The symbol "fecha_final" does not represent a defined variable.
| See error number -4369.
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------"
PRINT COLUMN 1, "Empleado",
COLUMN 50, "Normal",
COLUMN 65, "Al 35%",
COLUMN 75, " Valor",
COLUMN 90, "Al 100%",
COLUMN 100, " Valor",
COLUMN 115, " Total"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------"
PRINT COLUMN 1,negrillas_off
## AQUI COMIENZA LA IMPRESION DEL DETALLE
BEFORE GROUP OF x.departamento
SKIP 1 LINE
SELECT nom_dpto INTO nombre_dp FROM adtb00001
WHERE departamento = x.departamento
PRINT COLUMN 1, negrillas_on,x.departamento using "####"," ",nombre_dp ,
negrillas_off
BEFORE GROUP OF x.num_emp
LET total = 0
PRINT COLUMN 1, x.num_emp USING "&&&&","-",
x.departamento USING "&&&&","-",x.nivel USING"&&",
"-",x.cod_puesto USING "&&"," ",x.nom1_emp CLIPPED,
" ",x.apell1_emp CLIPPED;
ON EVERY ROW
LET total = total + x.valor
IF h_35 IS NULL THEN
| fglcomp: The symbol "h_35" does not represent a defined variable.
| See error number -4369.
LET h_35 = 0
| fglcomp: The symbol "h_35" does not represent a defined variable.
| See error number -4369.
END IF
IF h_100 IS NULL THEN
| fglcomp: The symbol "h_100" does not represent a defined variable.
| See error number -4369.
LET h_100 = 0
| fglcomp: The symbol "h_100" does not represent a defined variable.
| See error number -4369.
END IF
IF v_35 IS NULL THEN
| fglcomp: The symbol "v_35" does not represent a defined variable.
| See error number -4369.
LET v_35 = 0
| fglcomp: The symbol "v_35" does not represent a defined variable.
| See error number -4369.
END IF
IF v_100 IS NULL THEN
| fglcomp: The symbol "v_100" does not represent a defined variable.
| See error number -4369.
LET v_100 = 0
| fglcomp: The symbol "v_100" does not represent a defined variable.
| See error number -4369.
END IF
IF x.cod_mov = 1 THEN
LET h_nor = h_nor + x.cantidad
LET v_nor = v_nor + x.valor
PRINT COLUMN 50, x.valor USING "#,###,###.##";
END IF
IF x.cod_mov = 2 THEN
LET h_35 = h_35 + x.cantidad
| fglcomp: The symbol "h_35" does not represent a defined variable.
| See error number -4369.
| fglcomp: The symbol "h_35" does not represent a defined variable.
| See error number -4369.
LET v_35 = v_35 + x.valor
| fglcomp: The symbol "v_35" does not represent a defined variable.
| See error number -4369.
| fglcomp: The symbol "v_35" does not represent a defined variable.
| See error number -4369.
PRINT COLUMN 65, x.cantidad USING "###,###.##",
COLUMN 75, x.valor USING "#,###,###.##";
ELSE
IF x.cod_mov = 3 THEN
LET h_100 = h_100 + x.cantidad
| fglcomp: The symbol "h_100" does not represent a defined variable.
| See error number -4369.
| fglcomp: The symbol "h_100" does not represent a defined variable.
| See error number -4369.
LET v_100 = v_100 + x.valor
| fglcomp: The symbol "v_100" does not represent a defined variable.
| See error number -4369.
| fglcomp: The symbol "v_100" does not represent a defined variable.
| See error number -4369.
PRINT COLUMN 90, x.cantidad USING "###,###.##",
COLUMN 100, x.valor USING "#,###,###.##";
END IF
END IF
AFTER GROUP OF x.num_emp
PRINT COLUMN 115, total USING "#,###,###.##"
AFTER GROUP OF x.departamento
SKIP 1 LINE
PRINT COLUMN 50, GROUP SUM(x.valor) WHERE x.cod_mov = 1
USING "#,###,###.##",
COLUMN 65, GROUP SUM(x.cantidad) WHERE x.cod_mov = 2
USING "###,###.##",
COLUMN 75, GROUP SUM(x.valor) WHERE x.cod_mov = 2
USING "#,###,###.##",
COLUMN 90, GROUP SUM(x.cantidad) WHERE x.cod_mov = 3
USING "###,###.##",
COLUMN 100, GROUP SUM(x.valor) WHERE x.cod_mov = 3
USING "#,###,###.##",
COLUMN 115, GROUP SUM(x.valor) USING "#,###,###.##"
ON LAST ROW
SKIP 1 LINE
PRINT COLUMN 1, "Total General ",
COLUMN 50, SUM(x.valor) WHERE x.cod_mov = 1
USING "#,###,###.##",
COLUMN 65, SUM(x.cantidad) WHERE x.cod_mov = 2
USING "###,###.##",
COLUMN 75, SUM(x.valor) WHERE x.cod_mov = 2
USING "#,###,###.##",
COLUMN 90, SUM(x.cantidad) WHERE x.cod_mov = 3
USING "###,###.##",
COLUMN 100, SUM(x.valor) WHERE x.cod_mov = 3
USING "#,###,###.##",
COLUMN 115,SUM(x.valor) USING "#,###,###.##"
END REPORT