Viendo 8 entradas - de la 1 a la 8 (de un total de 8)
  • Autor
    Entradas
  • #32250
    AMEBIS
    Participante

    Gente del foro Libertya,

    Les comento que estoy tratando de sacar un reporte dinámico y estoy teniendo varios problemas. Por lo que vi en Libertya de los reportes Jasper que ya están creados, todos hacen referencia a una clase java (Listado de Vencimientos, Sumas y Saldos, libro IVA, etc) Yo quiero sacar un informe, por ejemplo un listado de facturas, pero quiero que salga por reporte jasper así modifico y hago diferentes cálculos y listas.

    Yo creé el mismo reporte de listado de vencimientos, exactamente igual, pero no me muestra nada y esto se debe a que no puse nada en “nombre de la clase” todo lo demas esta excamente igual y el reporte NO FUNCIONA.

    Alguien podría indicarme como se puede hacer esto? creo que es lo mejor que tiene libertya a la hora de reportes de cualquier tipo, teniendo en cuenta la facilidad de SQL para crear vistas y consultas SQL.

    Saludos y gracias de antemano.

    #37114
    Matías Nerón Cap
    Superadministrador

    Estimado,

    En la última versión liberada de Libertya, beta por cierto, ya se encuentra funcional el tema de reportes dinámicos jasper, sin la necesidad de crear una clase obligatoriamente, solamente agregando la consulta sobre el jrxml.
    En el próximo release, estimado para el mes que viene, podrás usar esta nueva funcionalidad sin problemas. La idea es crear el Informe y Proceso como se realiza con cualquier Jasper y adjuntar al registro el jasper.

    Cuando salga la versión y lo pruebes, por favor comentanos al experiencia.
    Saludos
    Matías Cap

    #37207
    AMEBIS
    Participante

    Matias, como estas?

    Te comento que estuve probando en la version 11.10 los reportes dinamicos jasper y funciona perfecto. Habrá que probar en la proxima version que novedades tenemos, pero por lo menos la version 11.10 me esta tomando perfectamente los parametros de entrada y me trae el mismo reporte que me trae el iReport conectado a la base de datos.

    Ahora estoy probando con subreportes, ya que ahroa serian dos archivos .jrxml y como podras ver en la ventana de informe y proceso, solamente podemos cargar un solo jrxml. Si se te ocurre algo me avisas por favor.

    Saludos

    Juan

    #37115
    Carranza Carlos
    Participante

    En el reporte se agrega un parámetro que indica la carpeta donde están los subreportes (seguramente deberás crear una compartirla como se hace con imágenes – ya que no se almacena ninguna de las 2 en el objeto principal). Probalo y contá, ya que está muy avanzado con el resto de los temas.

    #37209
    AMEBIS
    Participante

    Lo estuve probando, el problema que tenia antes era que había creado el reporte con ireport 5 y me daba problemas al subirlo y también me daba un error al compilarlo con ireport 2 (problemas de idioma groovy). Igualmente lo que hice fue crear el mismo reporte con el ireport 2, lo subi y anduvo a la perfeccion. Lo que hay que hacer durante la creacion del subreporte es poner el path completo del reporte y NO ponerlo como $P{SUBREPORT_DIR} + “report1_subreport1.jasper”

    Funciono a la perfección y estoy creando sin ningún problema reportes dinámicos con jasper, lo cual le aumenta la funcionalidad a libertya optimizando los informes que podemos crear con cualquier tipo de dato cargado en la base de libertya.

    Saludos y gracias.

    #37116
    Carranza Carlos
    Participante

    Gracias por la info. Podés contar como es el tema de los parámetros? Cómo los declarás? Qué pasa si no le ponen valor (por lo tanto no era obligatorio)?

    #37210
    AMEBIS
    Participante

    Respecto de los parametros, tenemos lo parametros de entrada al reporte, generalmente son fechas, organizaciones, entidades comerciales, etc. Yo estuve trabajando en un informe donde se debe poner la fecha, crear un parametro de entrada dateordered en el reporte y tambien en el informe jasper. Es clave la consulta SQL con el siguiente formato

    FROM
    “libertya”.”c_production_order” c_production_order INNER JOIN “libertya”.”c_production_orderline” c_production_orderline ON c_production_order.”c_production_order_id” = c_production_orderline.”c_production_order_id”
    INNER JOIN “libertya”.”m_product” m_product ON c_production_orderline.”m_product_id” = m_product.”m_product_id”
    INNER JOIN “libertya”.”m_warehouse” m_warehouse ON c_production_orderline.”m_warehouse_id” = m_warehouse.”m_warehouse_id”
    WHERE
    c_production_order.”dateordered” = $P{dateordered}

    caso contrario nunca entraría el parametro fecha.

    Luego tenemos los parametros de entrada en el subreporte, que son resultados de la consulta creada previamente.

    Es bastante complicado explicarlo por este medio, pero por ahi viene el tema, es cuestion de investigar un poco mas acerca paremetros, variables y subreportes.

    Saludos

    #37117
    Carranza Carlos
    Participante

    He logrado hacer un reporte que recibe parámetros, llama a un subreporte pasándole parámetros, el subreporte devuelve algún parámetro totalizado y todo funciona de maravillas.
    Consideraciones a tener en cuenta :
    – El reporte en Libertya se debe convocar (en la configuración de informes) como .jrxml con su path completo.
    – Para el subreporte, desde el reporte, se debe convocar al .jasper y se debe colocar el camino completo ó “./nombre_del_subreporte.jasper” si está en la misma carpeta.
    – Aún no lo puse en producción, pero estimo que deberé compartir la carpeta en el servidor para que el mismo sea encontrado (path).
    – En muchas oportunidades, en los parámetros, se puede elegir un valor o ninguno. Para ninguno se debe agregar en la consulta “and ($P{M_Shipper_ID} is null OR pa.m_shipper_id = $P{M_Shipper_ID})”
    “where pa.m_shipper_id = $P{M_Shipper_ID}” es la forma de preguntar por un parámetro en la consulta, siendo M_Shipper_ID el parámetro del reporte.
    IMPORTANTE: las fechas no son null (falla la consulta) por lo tanto deben ir como parámetro obligatorio (probé con extract pero no logré la interpretación de nulo).
    – Los parámetros Integer de Libertya, son BigDecimal al ser recibidos por el reporte, por lo tanto configurar el párametro como tal.
    – Los parámetros deben tener el mismo nombre en la pantalla de solicitud de los mismos y el reporte y en el reporte deben estar marcados para ser solicitados.
    – Primero debe funcionar en iReport y luego lo hará en Libertya.
    – En las propiedades del subreporte, pestaña subinformes, ventana expresión subreport, se debe colocar el nombre del subreporte (“.//PackList_SubPackages_din2.jasper” – yo lo tengo en la misma carpeta que el reporte padre .jrxml)
    – En las propiedades del subreporte, pestaña subinformes, parámetros subinforme, van los parámetros que se pasan al subinforme (un field del reporte padre a un parameters del reporte hijo).
    – En las propiedades del subreporte, pestaña subinformes, valores de retorno, van los parámetros que devuelve el subinforme (hay que definir una variable en el reporte padre para que reciba la variable del reporte hijo donde se hicieron cálculo que debe devolver – por ej. la sumarización de una columna en el subreporte).
    – Ya no es necesario el parámetro “SUBREPORT_DIR” en el reporte padre (no sé si antes lo era, pero por las dudas).
    – Si está fin definido el subreporte, (en el reporte padre) al seleccionarlo (clic derecho) – Abrir Subreporte, los debería llevar al subreporte.

    Puse todos los puntos que me dieron algo de trabajo, algunos más otros menos. El resto es “hacer” el reporte, subreporte y la/s consulta/s. Espero que le sirva al resto.

Viendo 8 entradas - de la 1 a la 8 (de un total de 8)
  • Debes estar registrado para responder a este debate.