Error en reportes analítico

Hola! Estamos tratando de cerrar el circuito para cuando un alumno solicita su título…

Algunos TED’S los imprime sin problemas, sólo estamos teniendo problemas con el CertificadoAnalitico y TED1.f !

La pantalla en ámbos queda en blanco. No me aparece ningún log, me fijé y nada…

A los jrxml los puedo compilar sin problemas en JasperReports, pero no sé, cuando lo queremos imprimir no pasa nada!

Adjunto captura que me pasaron desde funcional.

Desconozco estos problemas! Nosotros personalizamos estos reportes, y fueron pocas cosas las que cambiamos, y es raro que me funcione con todos menos con estos 2. Ya sucedió esto?

Saludos


04a46515-8f33-455f-ba88-2f65d6afe043.jpg

04a46515-8f33-455f-ba88-2f65d6afe043.png

Hola Lucas,

¿si probas con el reporte sin personalizar funciona?

¿con que herramienta compilaste el Jasper? ¿te permite hacer una previsualización de como arma PDF?
Existe un plugin de NetBeans que te permite editar, compilar y previsualizar el Jasper: http://plugins.netbeans.org/plugin/4425/ireport

saludos.
2


Screenshot from 2020-10-20 17-26-59.png

Screenshot from 2020-10-20 17-26-59.png

Hola! Gracias por responder

Acabamos de probar con el analítico SIN PERSONALIZAR, y lo que pasa es que se ejecuta el pdf, pero cuando lo abrimos aparece todo en blanco!

La herramienta es la misma que mostrás en la captura! Con iReport.
Me permitía tambien previsualizarlo y compilarlo.

Sale el mensaje que se imprimió correctamente…

Cualquier duda consultame, no tengo problema. Gracias!

Hola,

¿ustedes están en 3.18.0? Porque en 3.17 hubo un bug que se corrigió haciendo parche.

¿Les da algún mensaje en consola? Pueden parar y volver a correr el Jasper, luego volver a generar el PDF y ver si da errores en consola.

Dichos reportes ejecutan queries dentro, podes copiarlas y probarlas en el editor de SQL para ver si se rompen.

saludos.
2

Hola, estamos en la 3.18, si!

No me da ningún error en consola, actualicé el jasper anteriormente, compila bien, no trae errores tampoco.

En sí el analítico parece no tener errores de edición. Hay alguna forma de activar un log para cuando se pide el analítico desde guaraní?

Hola,

¿que pasa si prueban lo que sugiere este otro foro: http://foro.comunidad.siu.edu.ar/index.php?topic=8601.msg36905?


sudo apt-get update
sudo apt-get install --reinstall ttf-mscorefonts-installer

Dentro de los reportes que me comentas hay queries, ¿que pasa si las copias y las ejecutas en un editor SQL? ¿devuelven bien los datos?

CertificadoAnalitico.jrxml


SELECT
					sga_alumnos.alumno,
					(SELECT descripcion FROM negocio.mdp_nacionalidades WHERe nacionalidad = vw_personas.nacionalidad) as nacionalidad,
					(SELECT imagen FROM mdp_personas_foto WHERe mdp_personas.persona = mdp_personas_foto.persona) as imagen,
					to_char(fecha_nacimiento, 'DD/MM/YYYY') AS fecha_nacimiento,
					(SELECT vw_localidades.localidad_nombre FROM vw_localidades WHERE vw_localidades.localidad = mdp_personas.localidad_nacimiento) as lugar_nacimiento,
					COALESCE(sga_alumnos.legajo, ' -- ') AS legajo,
					COALESCE(ROUND(sga_certificados_otorg.promedio,2)::varchar,' ') AS promedio_con_aplazos,
					COALESCE(ROUND(sga_certificados_otorg.promedio_sin_aplazos,2)::varchar,' ') AS promedio_sin_aplazos,
					vw_personas.apellido || ', ' || vw_personas.nombres AS apellido_y_nombre,
					vw_personas.desc_tipo_documento || ' ' || vw_personas.nro_documento AS documento_principal,
					sga_certificados_otorg.certificado,
					sga_certificados_otorg.plan_version,
					CASE vw_personas.sexo
						WHEN 'M' THEN sga_certificados.nombre
						WHEN 'F' THEN COALESCE(sga_certificados.nombre_femenino, sga_certificados.nombre)
					END AS certificado_nombre,
					COALESCE(sga_certificados_otorg.nro_expediente, ' - ') AS nro_expediente,
					COALESCE(to_char(sga_certificados_otorg.fecha_egreso, 'DD/MM/YYYY'), ' ') AS fecha_egreso_alumno,
					f_fecha_a_texto(sga_certificados_otorg.fecha_egreso, 2) AS fecha_egreso_alumno_narrada,
					to_char(CURRENT_DATE, 'DD/MM/YYYY') AS fecha_actual,
					f_fecha_a_texto(CURRENT_DATE, 1) AS fecha_actual_narrada,
					sga_instituciones.nombre AS nombre_institucion,
					f_responsables_academicas_propuesta(sga_propuestas.propuesta) AS ra_nombre,
					sga_responsables_academicas.localidad AS ra_localidad,
					COALESCE(mug_localidades.nombre, ' -- ') AS localidad_nombre,
					sga_propuestas.nombre AS propuesta_nombre,
					'(' || sga_propuestas.codigo || ') ' || sga_propuestas.nombre AS propuesta_nombre_completo,
					sga_propuestas.nombre_abreviado AS propuesta_nombre_abreviado,
					sga_propuestas.propuesta_tipo,
					sga_planes.codigo AS plan_codigo,
					sga_planes.nombre AS plan_nombre,
					'(' || sga_planes.codigo || ') ' || COALESCE(sga_planes.nombre, ' ') AS plan_nombre_completo,
					COALESCE(sga_certificados_otorg.duracion_real_en_meses::VARCHAR, ' ') AS duracion_en_meses,
					COALESCE(resol_plan.documento_numero, ' ') AS resolucion_plan_nro,
					COALESCE(to_char(resol_plan.fecha, 'DD/MM/YYYY'), ' ') AS resolucion_plan_fecha,
					COALESCE(get_titulo_resolucion(sga_certificados_otorg.alumno, sga_certificados_otorg.plan_version, sga_certificados_otorg.certificado, sga_certificados_otorg.fecha_egreso, 'MINISTERIAL'),' -- ') as nro_resolucion_ministerial,
					COALESCE(get_titulo_resolucion(sga_certificados_otorg.alumno, sga_certificados_otorg.plan_version, sga_certificados_otorg.certificado, sga_certificados_otorg.fecha_egreso, 'CONEAU'),' -- ') as nro_resolucion_coneau,
					COALESCE(get_titulo_institucion_habilitante(sga_alumnos.alumno, 1), ' -- ') AS titulo_anterior,
					COALESCE(get_titulo_institucion_habilitante(sga_alumnos.alumno, 2), ' -- ') AS institucion_anterior,
					CASE get_titulo_institucion_habilitante(sga_alumnos.alumno, 3)
						WHEN 'E' THEN TRUE
						WHEN 'N' THEN FALSE
					END AS institucion_extranjera
			FROM	sga_certificados_otorg
			JOIN	sga_planes_certificados ON (sga_planes_certificados.certificado  = sga_certificados_otorg.certificado AND
                                                sga_planes_certificados.plan_version = sga_certificados_otorg.plan_version)
			JOIN	sga_certificados ON sga_certificados.certificado = sga_certificados_otorg.certificado
			JOIN	sga_alumnos ON sga_alumnos.alumno = sga_certificados_otorg.alumno
			JOIN	vw_personas ON vw_personas.persona = sga_alumnos.persona
			JOIN	mdp_personas ON mdp_personas.persona = vw_personas.persona
			JOIN	sga_planes_versiones ON sga_planes_versiones.plan_version = sga_certificados_otorg.plan_version
			JOIN	sga_planes ON sga_planes.plan = sga_planes_versiones.plan 
			JOIN	sga_propuestas ON sga_propuestas.propuesta = sga_planes.propuesta
			JOIN	sga_responsables_academicas ON true 
			JOIN 	sga_instituciones ON sga_instituciones.institucion = sga_responsables_academicas.institucion
			LEFT JOIN sga_documentos as resol_plan ON resol_plan.documento = sga_planes.documento_alta
			LEFT JOIN mug_localidades ON sga_responsables_academicas.localidad = mug_localidades.localidad
			
			WHERE	sga_certificados_otorg.nro_solicitud = $P{nro_solicitud}
			  AND	sga_responsables_academicas.responsable_academica = 
												(SELECT sga_propuestas_ra.responsable_academica
												 FROM sga_propuestas_ra
												 WHERE sga_propuestas_ra.propuesta = sga_propuestas.propuesta
												 ORDER BY sga_propuestas_ra.responsable_academica
												 LIMIT 1)

TED1f.jrxml


SELECT
	vw_personas.apellido || ' ' || vw_personas.nombres AS apellido_y_nombre,
	vw_personas.desc_tipo_documento || ' ' || vw_personas.nro_documento as documento_principal,
	COALESCE(sga_alumnos.legajo, ' ') as legajo,
	CASE vw_personas.sexo
		WHEN 'M' THEN 'el alumno'
		WHEN 'F' THEN 'la alumna'
	END AS alu_desc_segun_sexo,
	CASE vw_personas.sexo
		WHEN 'M' THEN sga_certificados.nombre
		WHEN 'F' THEN sga_certificados.nombre_femenino
	END AS certificado_nombre,
	COALESCE(sga_certificados_otorg.nro_expediente, ' - ') AS nro_expediente,
	COALESCE(sga_certificados_otorg.nro_disposicion_decano, ' -- ') as nro_disposicion_decano,
	COALESCE(sga_certificados_otorg.resolucion_rectorado, ' -- ') as nro_resolucion,
	to_char(CURRENT_DATE, 'DD/MM/YYYY') AS fecha_actual,
	sga_instituciones.nombre AS nombre_institucion,
	f_responsables_academicas_propuesta(sga_propuestas.propuesta) AS ra_nombre,
	mug_localidades.nombre as ciudad,
	sga_planes.nombre as plan_nombre,
        sga_planes.codigo as plan_codigo,
    	sga_propuestas.nombre as propuesta_nombre,
    	'(' || sga_propuestas.codigo || ') ' || sga_propuestas.nombre as propuesta_nombre_completo
FROM
	sga_certificados_otorg,
	sga_certificados,
	sga_alumnos,
	sga_ubicaciones,
	mug_localidades,
	vw_personas,
	sga_planes_versiones,
	sga_planes,
	sga_propuestas,
	sga_responsables_academicas,
	sga_instituciones
WHERE
	sga_certificados_otorg.nro_solicitud = $P{nro_solicitud}
	AND sga_certificados_otorg.certificado = sga_certificados.certificado
	AND sga_certificados_otorg.plan_version = sga_planes_versiones.plan_version
	AND sga_planes_versiones.plan = sga_planes.plan
	AND sga_planes.propuesta = sga_propuestas.propuesta
	AND sga_responsables_academicas.responsable_academica = (SELECT sga_propuestas_ra.responsable_academica
									FROM sga_propuestas_ra
									WHERE sga_propuestas.propuesta = sga_propuestas_ra.propuesta
								LIMIT 1)
	AND sga_responsables_academicas.institucion = sga_instituciones.institucion
	AND sga_alumnos.alumno = sga_certificados_otorg.alumno
	AND sga_alumnos.persona = vw_personas.persona
	AND sga_alumnos.ubicacion = sga_ubicaciones.ubicacion
	AND sga_ubicaciones.localidad = mug_localidades.localidad

Las dos queries tienen el mismo parámetro $P{nro_solicitud}.

saludos.
2

Hola! Mirando la base de datos para encontrar un número de “número de solicitud” y hacer la consulta,

fui a sga_certificados_otorg y está vacío! No aparece nada en esa carpeta… Es normal?

Hola Lucas,

Esta mal eso, debería haber filas en la tabla sga_certificados_otorg, por eso se rompe la query que esta dentro del Jasper.

Creo que dichos reportes no los vas a poder imprimir hasta que solicites un titulo.

saludos.
2

Tienen activado los logs de auditoria?
Si es asi, vean en el esquema “negocio_auditoria”, la tabla “logs_sga_certificados_otorg” y verificar si tiene registros, buscar el alumno y fijarte la solicitud del titulo de ese alumno y quien lo dio de baja al registro y desde que operación.

Hola!
Pero los otros TED’S nos funcionan bien, y ellos también solicitan el número de solicitud… es así?

Lucas, en la tabla sga_certificados_otorg decis que no hay registros o no hay para ese alumno que tienen este problema? (Según Respuesta #6)

¿Cuales son los TED’S que los imprime sin problemas?

Hola!

No hay nada de registros en general. Hago una consulta a esa tabla para que me traiga todo y está vacía…

Para los TED’S que no tenemos problemas es para el
TED1
TED1a,
TED1b,
TED1c,
CertificadoFinCarrera,
ConstanciaTituloTramite,
TED2 y el
TED1g

Son los TED’S que usamos actualmente

Los que no me andan ahora:
CertificadoAnalitico
TED1f

Es muy raro lo que comentas, el TED1a si ves la query esta recuperando datos de la tabla sga_certificados_otorg. La query es la siguiente

SELECT
COALESCE(sga_alumnos.legajo, ’ – ') AS legajo,
vw_personas.apellido || ’ ’ || vw_personas.nombres as apellido_y_nombre,
vw_personas.desc_tipo_documento || ’ ’ || vw_personas.nro_documento as documento_principal,
sga_instituciones.nombre as nombre_institucion,
sga_certificados_otorg.nro_solicitud,
CASE
WHEN vw_personas.sexo = ‘F’ THEN sga_certificados.nombre_femenino
WHEN vw_personas.sexo = ‘M’ THEN sga_certificados.nombre
END AS certificado_nombre,
COALESCE(sga_certificados_otorg.nro_expediente, ’ - ') AS nro_expediente,
f_responsables_academicas_propuesta(sga_propuestas.propuesta) as nombre_ra
FROM
sga_certificados_otorg,
sga_certificados,
sga_alumnos,
sga_instituciones,
vw_personas,
sga_planes,
sga_planes_versiones,
sga_propuestas,
sga_responsables_academicas
WHERE
sga_certificados_otorg.nro_solicitud = id_nro_solicitud
AND sga_certificados_otorg.certificado = sga_certificados.certificado
AND sga_alumnos.alumno = sga_certificados_otorg.alumno
AND sga_alumnos.persona = vw_personas.persona
AND sga_certificados_otorg.plan_version = sga_planes_versiones.plan_version
AND sga_planes.plan = sga_planes_versiones.plan
AND sga_propuestas.propuesta = sga_planes.propuesta
AND sga_responsables_academicas.responsable_academica = (SELECT sga_propuestas_ra.responsable_academica
FROM sga_propuestas_ra
WHERE sga_propuestas.propuesta = sga_propuestas_ra.propuesta
LIMIT 1)
AND sga_responsables_academicas.institucion = sga_instituciones.institucion

Hola!
Claro, no tengo ni la menor idea de porque anda el TED1a y no andan los otros! Pongo un número de solicitud al azar y obviamente no trae nada :c

Lucas, lo que no entiendo es porque esos TED recuperan información si decis que la tabla sga_certificados_otorg no tiene registros.
No estarás mirando en otra base?

Hola, MIL PERDONES! Estaba re confiado que era la BD de desarollo y era de producción, PERDÓN!

Sii, me trae bien los datos!