- Registrar noprmt003 en mbsERP.4pw (FUNCIONES_NO: noprfu000.4gl, nocarnet.4gl; FORMULARIOS_NO: nofmmt003.4fd); reutiliza otrodir/departamentos.4gl ya presente en FUNCIONES - Actualizar el diccionario de esquema smarmotech.sch: faltaban las columnas telefonoCorporativo/numeroOficina/extension de adtb00003 (existen en la BD real pero no estaban en el diccionario, .42d se regenera solo al recompilar); propagado a todos los directorios - Desactivar el CONNECT TO "marmotech" AS "IFMX" (Informix ya no existe, todo migro a SQL Server) y el INSERT duplicado hacia esa conexion en el alta de empleados; sin esto el programa se colgaba al iniciar - Quitar CONVERT(...,103) de fechas en el SELECT/FETCH de empleados: se convertian a texto dd/mm/yyyy y luego se reasignaban a variables DATE, causando "-1205 Invalid month in date" con dias > 12 - Agregar BEFORE CONSTRUCT/END CONSTRUCT para poblar el combo de Departamento en la busqueda (faltaba, quedaba vacio) - Corregir foto de empleado que no se limpiaba al navegar Siguiente/Anterior hacia un empleado sin foto - nocarnet.4gl: sustituir fgl_report_* (API no disponible) por om.XmlWriter.createFileWriter() hacia FGLSPOOL Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
89 lines
3.1 KiB
Plaintext
89 lines
3.1 KiB
Plaintext
GLOBALS
|
|
"noprgb000.4gl"
|
|
DEFINE direccion_suc,telefono_suc VARCHAR(100),
|
|
provincia VARCHAR(60),
|
|
xpais CHAR(10)
|
|
|
|
FUNCTION cardnet(xnumemp)
|
|
DEFINE tmpfile STRING,
|
|
foto BYTE,
|
|
xnumemp INT
|
|
LET direccion_suc = NULL
|
|
LET telefono_suc = NULL
|
|
LOCATE foto IN MEMORY
|
|
|
|
LET selec = "SELECT
|
|
a.nom1_emp,
|
|
a.apell1_emp,
|
|
a.num_emp,
|
|
a.cedula,
|
|
b.nom_puesto,
|
|
a.foto_empleado,
|
|
c.direccion,
|
|
c.telefono,
|
|
e.abreviatura,
|
|
f.nombre_provincia
|
|
FROM adtb00003 a
|
|
LEFT JOIN adtb00004 b ON a.cod_puesto = b.cod_puesto
|
|
LEFT JOIN sucursales c ON c.sucid = a.sucid
|
|
LEFT JOIN vetb00017 e ON e.codigo = c.pais
|
|
LEFT JOIN vetb00020 f ON f.cod_provincia = c.cod_provincia
|
|
WHERE a.num_emp = ",xnumemp USING "<<<<<",
|
|
" AND a.status_t IS NULL"
|
|
|
|
PREPARE bcarnet FROM selec
|
|
EXECUTE bcarnet INTO datos_cheque.nom1_emp,
|
|
datos_cheque.apell1_emp ,
|
|
datos_cheque.num_emp,
|
|
datos_cheque.cedula,
|
|
puesto.nom_puesto ,
|
|
foto ,
|
|
direccion_suc ,
|
|
p_Companias.telefono ,
|
|
xpais ,provincia
|
|
|
|
|
|
LET tmpfile = '.\\TMP\\tmpfoto.jpg'
|
|
|
|
-- La API de configuracion de reportes (fgl_report_*) no esta
|
|
-- disponible en este FGL; se escribe el XML directo a un
|
|
-- archivo en FGLSPOOL en lugar de usar la plantilla .4rp
|
|
-- (noprrp044.4rp) con vista previa del carnet.
|
|
LET r_filename = FGL_GETENV("FGLSPOOL"), "/nocarnet_reporte.xml"
|
|
LET handler = om.XmlWriter.createFileWriter(r_filename)
|
|
|
|
IF handler IS NOT NULL THEN -- report engine was configured ok
|
|
START REPORT reporte TO XML HANDLER handler
|
|
END IF
|
|
IF foto IS NOT NULL THEN
|
|
CALL foto.writeFile(tmpfile)
|
|
ELSE
|
|
LET tmpfile='.\\TMP\\fotodefault.jpg'
|
|
END IF
|
|
OUTPUT TO REPORT reporte(tmpfile)
|
|
|
|
FINISH REPORT reporte
|
|
|
|
|
|
|
|
END FUNCTION
|
|
|
|
|
|
REPORT reporte(xtmpfile)
|
|
DEFINE xtmpfile STRING
|
|
FORMAT
|
|
ON EVERY ROW
|
|
#DISPLAY "ubicacion ",ubicacionhtml
|
|
IF direccion_suc IS NOT NULL THEN
|
|
LET p_companias.direccion = direccion_suc
|
|
ELSE
|
|
SELECT c.direccion,c.telefono
|
|
INTO direccion_suc,p_companias.telefono
|
|
FROM sucursales c WHERE sucid = 1
|
|
END IF
|
|
|
|
PRINTX datos_cheque.nom1_emp,datos_cheque.apell1_emp,datos_cheque.num_emp,
|
|
direccion_suc,p_Companias.telefono,datos_cheque.cedula,
|
|
puesto.nom_puesto,xtmpfile,
|
|
xpais,provincia
|
|
END REPORT |