Legajo null en actas rectificativas de comisiones

Hola. Observamos que cuando rectificamos actas de comisión digitales, luego de realizar el cierre del acta vemos que al imprimir la misma, esta se imprime con los legajos de los alumnos en null. El problema sucede luego de cerrar el acta ya que antes de eso los legajos aparecen correctamente.

¿Tienen idea de por que puede que se este dando este error?

Aguardo su respuesta y los saludo atentamente.

View Issue

Hola Roman,

podrías indicarnos en la versión que están, en el acta original (no rectificada) cuando la cerraron los legajos se visualizaban bien?, cuando decís “comisiones digitales” nos podrías comentar a qué haces referencia?; les pasa con todas las actas que rectifican o es un caso particular?

buenas! estamos en la versión 3.22.2. lo digital son las actas, no las comisiones, a eso me refería.

cuando cerramos el acta los legajos se veían bien, después genere una rectificativa y al cerrarla los legajos se colocaron en null. Ahora revisando veo que el acta original también tiene los legajos en null pero antes de rectificar no los tenían en null.

Replique el comportamiento en otro acta y sucede lo mismo. Al parecer solo es con las rectificativas digitales.

Buenas Roman,

ustedes hicieron alguna personalización para que salga el número de legajo en el acta?

Si, personalizamos el reporte para que muestre el legajo, pero ese dato viene de la consulta original sin personalización. Lo raro es que antes de cerrar se vea bien el legajo y luego de esta operación ya no. Alguna idea de por que esta operación puede estar modificando el dato que llega al reporte?

Hola Roman,

puede ser que estén teniendo problemas en la parte de la personalizacion del jasper, hicieron debug en iReport para ver si trae el dato del legajo o se pierde?

Podrían enviarnos los logs del momento que ven el legajo en null,

Saludos

Buenas. No creemos que el problema este en la personalización del jasper, porque notamos que el problema esta cuando las actas pasan a Arai, dentro de guarani las actas se muestran correctamente, con el campo legajo.

Creemos que el error puede estar en la función que realiza el cierre del acta que quizás al armar el xml para el jasper no incluye el campo legajo. ¿Podrían decirnos cuales son las clases que estan involucradas en el cierre de actas y envío de documentos a ARAI para que podamos revisarlo? porque el acta se genera en guaraní mediante jasper y luego se envia a ARAI ¿verdad?

Quisiera aclarar que la personalización que hicimos nosotros es solo de cambiar el nombre de la columna documento principal por legajo y utilizar el campo legajo que ya estaba disponible en el reporte original

Hola @Gianni_Roman_Lupi_Ca Me podrías decir a que Universidad perteneces? puede ser Universidad Nacional de San Luis.

Estamos analizando con los técnicos.

Gracias

Hola @Gianni_Roman_Lupi_Ca

Veo que tenes personalizado exportaciones/jasper/ActaRegulares.jrxml:

Original SIU: https://colab.siu.edu.ar/trac/guarani3/browser/nodos/unsl/gestion/trunk/3.22.2/exportaciones/jasper/ActaRegulares.jrxml

Personalizado: https://colab.siu.edu.ar/trac/guarani3/browser/nodos/unsl/gestion/trunk/3.22.2/personalizacion/exportaciones/jasper/ActaRegulares.jrxml

La función get_alumnos_acta_cursadas de php/nucleo/actas/co_actas.php debería devolver el legajo:, fijate que la query dice sga_alumnos.legajo AS legajo,.

Vas a tener que hacer como se hace con fecha donde se valida si es vacía:

				<textField isStretchWithOverflow="true">
					<reportElement style="Row" x="20" y="0" width="45" height="11" uuid="25b342f1-e3aa-4e16-a1e4-b1770773a304"/>
					<textElement textAlignment="Center" verticalAlignment="Middle">
						<font size="9"/>
					</textElement>
					<textFieldExpression><![CDATA[(($F{legajo}.trim() != "") ? $F{legajo} : "")]]>
				</textField>

Vos ahora estas haciendo esto <textFieldExpression><![CDATA[$F{legajo}]]></textFieldExpression>, ver aquí.

Saludos.

Hola @Gianni_Roman_Lupi_Ca

Pudieron ver lo que les envió Leo?

gracias

Hola @Gianni_Roman_Lupi_Ca , podes probar lo siguiente:


:white_check_mark: Cómo evitar que JasperReports imprima NULL

Solución más segura y recomendada

Usar una expresión que controle null y vacío:

<textFieldExpression><![CDATA[
    ($F{legajo} != null && !$F{legajo}.trim().isEmpty())
        ? $F{legajo}
        : ""
]]></textFieldExpression>

:check_mark: Qué hace esta expresión

  • Evita NullPointerException

  • Elimina espacios al inicio y al final

  • Imprime:

    • el valor de legajo si tiene contenido
    • una cadena vacía ("") si es null o está vacío

:green_circle: Alternativa más simple (si los espacios no importan)

<textFieldExpression><![CDATA[
    $F{legajo} == null ? "" : $F{legajo}
]]></textFieldExpression>

:warning: Esta opción no controla cadenas con solo espacios.


:green_circle: Opción incorporada en JasperReports (recomendada)

Si solo necesitás evitar que se muestre null, podés usar el atributo:

<textField isBlankWhenNull="true">

Ejemplo completo:

<textField isBlankWhenNull="true">
    <textFieldExpression><![CDATA[$F{legajo}]]></textFieldExpression>
</textField>

:check_mark: Convierte automáticamente null en ""
:cross_mark: No controla cadenas vacías ("") ni con espacios


:trophy: Versión final recomendada

Para una salida limpia y segura en todos los casos, usar:

<textField isStretchWithOverflow="true">
    <textFieldExpression><![CDATA[
        ($F{legajo} != null && !$F{legajo}.trim().isEmpty())
            ? $F{legajo}
            : ""
    ]]></textFieldExpression>
</textField>

Si querés, también puedo ayudarte a:

  • Pasar esta lógica a una variable
  • Reutilizarla en varios campos
  • Controlar cuando la base de datos devuelve "NULL" como texto

Buenos días, ya lo resolvimos con una personalización, agregando la columna legajo en el xml generado por la clase php/nucleo/acta/Acta.php en la funcion generar_pdf_acta_cursada.

Saludos.

@Gianni_Roman_Lupi_Ca

La función generar_pdf_acta_cursada de php/nucleo/actas/acta_nucleo.php que estas personalizando en personalizacion/php/nucleo/actas/acta.php se utiliza para las actas que se envían a Araí Documentos. También tene en cuenta la función vista_jasperreports de php/operaciones/cursadas/actas/imprimir/ci_nav_imprimir_actas_comision.php.

Saludos.