Registra noprrp039 (Reporte Empleados) y corrige bugs de SQL y fecha

Se agrega noprrp039 al proyecto usando nofmrp039.4fd, reutilizando
FUNCIONESREPORT y libgre.42x.

Se corrige "AND  and" duplicado (typo) en las 3 consultas dinamicas
del bloque tipoEmpleados=9 (TODOS los empleados), que producia un
error de sintaxis SQL y bloqueaba completamente esa opcion.

Se corrige CONVERT(CHAR,fech_efec,103) hacia variable DATE en las 5
consultas del programa, mismo patron de error -1205 "Invalid month
in date" ya visto en otros programas.

Se crea PROYECTO/bin/IMAGENES/EMPLEADOS (con .gitkeep), carpeta
faltante donde el programa exporta las fotos de empleados
(foto_empleado.writeFile); sin ella el reporte fallaba con error
-8087 al procesar cualquier empleado con foto guardada.

Probado con empleado especifico y con "TODOS" (activos+inactivos con
foto), verificado contra BD sobre departamento 1000.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Abel López
2026-09-28 13:11:32 -04:00
co-authored by Claude Sonnet 5
parent 0641c6b2be
commit aeab10ce0d
3 changed files with 25 additions and 19 deletions
+6
View File
@@ -489,6 +489,7 @@
<File filePath="nodir/nofmcs006.4fd"/> <File filePath="nodir/nofmcs006.4fd"/>
<File filePath="nodir/nofmrp002.4fd"/> <File filePath="nodir/nofmrp002.4fd"/>
<File filePath="nodir/nofmrp003.4fd"/> <File filePath="nodir/nofmrp003.4fd"/>
<File filePath="nodir/nofmrp039.4fd"/>
</Library> </Library>
<Library binaryName="FUNCIONES_NO" id="-306412216" label="FUNCIONES_NO"> <Library binaryName="FUNCIONES_NO" id="-306412216" label="FUNCIONES_NO">
<File filePath="nodir/noprgb000.4gl"/> <File filePath="nodir/noprgb000.4gl"/>
@@ -567,6 +568,11 @@
<File filePath="nodir/noprrp003.4gl"/> <File filePath="nodir/noprrp003.4gl"/>
<File filePath="bin/noprrp003.4rp"/> <File filePath="bin/noprrp003.4rp"/>
</Application> </Application>
<Application binaryName="noprrp039" dependencies="-1026233879,-764824792,-306412216,-335228674,-1423229125" externalDependencies="libgre.42x" id="-700000079" label="noprrp039">
<Configuration commandLineArguments="alopez Lopez2023" id="-700000080" label="Configuration"/>
<File filePath="nodir/noprrp039.4gl"/>
<File filePath="bin/noprrp039.4rp"/>
</Application>
</Group> </Group>
<Group id="1667448785" label="PRODUCTOS TERMINADOS"> <Group id="1667448785" label="PRODUCTOS TERMINADOS">
<Library binaryName="FORMULARIOS_IP" dependencies="-1026233879" id="-1826025351" label="FORMULARIOS_IP"> <Library binaryName="FORMULARIOS_IP" dependencies="-1026233879" id="-1826025351" label="FORMULARIOS_IP">
+19 -19
View File
@@ -52,27 +52,27 @@ OPEN WINDOW w1 WITH FORM "nofmrp039"
IF fotos = "SI" THEN IF fotos = "SI" THEN
LET selec = LET selec =
"SELECT a.num_emp,a.departamento,a.cod_puesto,", "SELECT a.num_emp,a.departamento,a.cod_puesto,",
" a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,CONVERT(CHAR(10),a.fech_efec,103), ", " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,a.fech_efec, ",
" a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ",
" FROM adtb00003 a WHERE ",criterio CLIPPED, " AND and a.fech_efec IS NOT NULL " FROM adtb00003 a WHERE ",criterio CLIPPED, " AND a.fech_efec IS NOT NULL
AND a.foto_empleado IS NOT NULL AND a.foto_empleado IS NOT NULL
ORDER BY a.departamento,a.num_emp " ORDER BY a.departamento,a.num_emp "
ELSE ELSE
LET selec = LET selec =
"SELECT a.num_emp,a.departamento,a.cod_puesto,", "SELECT a.num_emp,a.departamento,a.cod_puesto,",
" a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,CONVERT(CHAR(10),a.fech_efec,103), ", " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,a.fech_efec, ",
" a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ",
" FROM adtb00003 a WHERE ",criterio CLIPPED, " AND and a.fech_efec IS NOT NULL " FROM adtb00003 a WHERE ",criterio CLIPPED, " AND a.fech_efec IS NOT NULL
AND a.foto_empleado IS NULL AND a.foto_empleado IS NULL
ORDER BY a.departamento,a.num_emp " ORDER BY a.departamento,a.num_emp "
END IF END IF
IF fotos = "TODOS" THEN IF fotos = "TODOS" THEN
LET selec = LET selec =
"SELECT a.num_emp,a.departamento,a.cod_puesto,", "SELECT a.num_emp,a.departamento,a.cod_puesto,",
" a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,CONVERT(CHAR(10),a.fech_efec,103), ", " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,a.fech_efec, ",
" a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ",
" FROM adtb00003 a WHERE ",criterio CLIPPED, " AND and a.fech_efec IS NOT NULL " FROM adtb00003 a WHERE ",criterio CLIPPED, " AND a.fech_efec IS NOT NULL
AND a.foto_empleado IS NOT NULL AND a.foto_empleado IS NOT NULL
ORDER BY a.departamento,a.num_emp " ORDER BY a.departamento,a.num_emp "
END IF END IF
END IF END IF
@@ -80,10 +80,10 @@ OPEN WINDOW w1 WITH FORM "nofmrp039"
LET chEmpleados = "EMPLEADOS ACTIVOS" LET chEmpleados = "EMPLEADOS ACTIVOS"
LET selec = LET selec =
"SELECT a.num_emp,a.departamento,a.cod_puesto,", "SELECT a.num_emp,a.departamento,a.cod_puesto,",
" a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,CONVERT(CHAR(10),a.fech_efec,103), ", " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,a.fech_efec, ",
" a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ",
" FROM adtb00003 a WHERE ",criterio CLIPPED, " FROM adtb00003 a WHERE ",criterio CLIPPED,
" AND (a.status_t is null or a.status_t = 'I') and a.fech_efec IS NOT NULL ", " AND (a.status_t is null or a.status_t = 'I') and a.fech_efec IS NOT NULL ",
" ORDER BY a.departamento,a.num_emp " " ORDER BY a.departamento,a.num_emp "
END IF END IF
@@ -91,10 +91,10 @@ OPEN WINDOW w1 WITH FORM "nofmrp039"
LET chEmpleados = "EMPLEADOS DESACTIVOS" LET chEmpleados = "EMPLEADOS DESACTIVOS"
LET selec = LET selec =
"SELECT a.num_emp,a.departamento,a.cod_puesto,", "SELECT a.num_emp,a.departamento,a.cod_puesto,",
" a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,CONVERT(CHAR(10),a.fech_efec,103),", " a.nom1_emp,a.apell1_emp,a.apell2_emp,a.calle,a.casa_num,a.fech_efec,",
" a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ", " a.cedula,a.sueldo_ac,a.fech_nac,a.foto_empleado ",
" FROM adtb00003 a WHERE ",criterio CLIPPED, " FROM adtb00003 a WHERE ",criterio CLIPPED,
" AND a.status_t is not null and a.fech_efec IS NOT NULL", " AND a.status_t is not null and a.fech_efec IS NOT NULL",
" ORDER BY a.departamento,a.num_emp " " ORDER BY a.departamento,a.num_emp "
END IF END IF