Respuestas de foro creadas
-
AutorEntradas
-
Carranza CarlosParticipanteInteresante la opción attachment:. La voy a probar.
En este caso cómo referencias a un subreporte en el reporte padre?
Carranza CarlosParticipanteEncontré la solución.
Leyendo y leyendo en JBoss.
Agregué al final del archivo server.xml, que está en /ServidorOXP/jboss/server/OpenXpertya/deploy/jbossweb-tomcat55.sar/, al final, pero antes del cierre de HOST (como se puede ver abajo)–>
docBase=”/ServidorOXP/data”>–> http://servidor/reportes/reporte.jrxml (ojo para llamar el subreporte, hay que llamarlo de la misma forma – salvo que es .jasper).
Se reinicia el application server y listo. Incluso, luego se pueden cambiar o agregar archivos sin reiniciar.
Carranza CarlosParticipanteCuando se indica que es un reporte dinámico, en la pantalla de Configuración (Administrador) / Maestros – Informe y proceso, se abre un cuadro de texto para configurar adónde debe ir a buscar el jrxml. El campo donde lo guarda es un character.
Si compartís una carpeta en el servidor (windows o linux) y mapeas o montas (windows y linux respectivamente) dicha carpeta compartida; lo podés obtener perfectamente.
El problema es que, si el cliente es windows se apunta como Y:/reporte.jrxml y si el linux como /mnt/reportes/reporte.jxrml (sólo uno de ellos).
Cuando se ejecuta el reporte desde el cliente lo busca exactamente ahí. Teniendo una red de clientes homogénea no hay problemas, pero yo tengo clientes en linux y en windows.
La solución debería ser una URL y JBoss + Tomcat deberían poder proveerla (de hecho lo hacen para descargar los clientes).
En teoría, creando una carpeta “/reportes” debajo de ROOT.war (según los manuales de JBoss) debería funcionar, pero no lo hace. La configuración por defecto debe estar modificada y no encuentro donde.Para guardarlo en la base de datos, como lo hace en el caso de reportes normales o imagen de la compañía el campo de la base de datos debería ser bytea y no sé si la lógica de la aplicación interpretaría que debe ejecutar con el ireport este binario (me parece que hay que hacer más pruebas o más largas).
Además hay que agregar que en mi caso el reporte dinámico tiene subreportes y ese, como es referenciado desde el reporte, no hay forma de guardarlo attachado en la base de datos.Es posible que alguien haya publicado algún archivo estático el en jboss actual y tenga la solución rápida o lea esto y se dé cuenta en donde me estoy equivocando (si es así) y nos ilumine.
Gracias por contestar.
Carranza CarlosParticipanteHe 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.
Carranza CarlosParticipanteGracias 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)?
Carranza CarlosParticipanteEn 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.
Carranza CarlosParticipanteTe recomiendo leer el siguiente enlace, en donde se explica bien el funcionamiento de CUPS http://www.alcancelibre.org/staticpages/index.php/como-cups
Entrá a cups (localhost:631) Fijate en Printers / la impresora en cuestión / set default options (en el segundo desplegable) y ahí puedes cambiar el tamaño por defecto (si es que el mismo existe).
Los tamaños de los papeles vienen manejados por los controladores de impresoras (archivos ppd) que están en /etc/cups/ppd/nombre de la impresora
Si no está, en este link http://listas.velug.org.ve/pipermail/l-linux/2007-September/063166.html vas a ver cómo hacer para agregarlo.
Reiniciás cups y deberías poder poner como defecto el tamaño que quieres y no tocar más nada al imprimir.
Carranza CarlosParticipanteJustamente ayer iba a contestarme yo mismo el post.
Instalé una máquina virtual con wfk xp, elipse 3.5 y copeé la carpeta de Libertya allí. Armé el respectivo proyecto, y al debuggear encontré que no se clavaba, por lo que pude revisar todo lo pendiente.
Es la primera vez que encuetro que linux pierde frente de M$.
buahhh!!
Carranza CarlosParticipanteQuizás parezca una pregunta tonta, pero te fijaste si está Letter o US Letter? Dependiendo la impresora suelen poner los nombres de los tamaños de página en inglés (por ej. HP).
Probaste crear una custom con el tamaño del papel carta?
Cuando imprimís, a pesar de no tener tamaño carta, cómo sale?
Carranza CarlosParticipanteEl punto de venta te hace el remito, además de la factura.
Si lo vendido es servicio (no requiere inventario) puedes obviar el remito.
Para hacer que la factura (no PV) genere remito, hay que hacer una custom vía programación.
Carranza CarlosParticipanteEstás en el horno.
Deberías modificar el código del reporteador del entorno.
Ya traté hace unos meses, no de algo tan complejo como una fórmula, sino de agregar algún campo al pie de página y me fue imposible.
Entiendo que en algún momento lo único que había era el reporteador (si buscás podrás encontrar las facturas hechas con él) pero resultó tan complejo que por eso se volcó hacia iReport.
En la versión 11.10, por lo que leí ya se pueden usar reportes dinámicos, es decir sin tener que generar launchxxxxxx y dataxxxxxx.
De todas formas, buscá la factura hecha con el reporteador, dale un par de vuelta y por ahí sacás alguna idea para hacer cálculos (de hecho en la misma, si mal no recuerdo había alguno).
Suerte.
Carranza CarlosParticipanteEsto es un cálculo dentro de iReport, a partir de parámetros y valores fijos :
Total = se pasa como parámetro en launchxxxxxxxxx (cabecera) y DTO_CDO es una constante creada en el reporte (fijate la pantalla)
[attachment=358]campovariable.png[/attachment]Fomula utilizada :
new java.math.BigDecimal( $P{TOTAL}.doubleValue() – (($P{TOTAL}.doubleValue() * $V{DTO_CDO}.doubleValue()) / 100))
Carranza CarlosParticipanteAl final, no había forma de ver la NC de cliente, desde la factura o ND de proveedor.
Opté por crear un cargo y le devuelvo el dinero como gasto y hago un remito por la devolución del artículo.
Si a alguien se le ocurre algo más, soy todo oídos (perdón, ojos)
Carranza CarlosParticipanteFallé con todo éxito.
1) creé la NC
2) hice que el cliente (consumidor final), además fuera proveedor (1 tilde).
3) modifiqué la pantalla de ingreso de facturas de proveedor para que el campo Letra del comprobante no fuera de sólo lectura.
4) cargué una factura de proveedor (inventando el nro), con letra C. No pude crear línea desde NC. Completé.
5) Fui a hacer un pago. Ahí estaba la factura. Seleccioné, puse el importe y pasé a formas de pago.
6) Seleccioné crédito (el cual estaba habilitado), pero no encontró la NC para aplicarla al pago.Parece que es más complicado. Seguramente hay que cambiar el select que muestra los comprobantes.
Carranza CarlosParticipanteGracias por responder.
Anular la factura de venta es complicado, porque ocurrió hace 4 meses.
La opción 1 la utilicé, pero luego no la podía pagar, así que anulé la NC.
La opción 2 requiere que el proveedor no sea consumidor final (en este caso el cliente lo es) y por lo tanto cargar un IVA, sino al querer hacer la factura no sabe qué comprobante usar (A, B ó C). No te toma ninguno, entonces no puedes avanzar.
Tendría que ver qué “tocar” para que me permita, convertir el cliente en proveedor (fácil, 1 tilde), tocar la pantalla de carga de facturas para que me permita colocar la letra del comprobante (un poco más complicado, pero se puede); y si me deja crear la factura, espero encontrar el crédito para pagarlo.
En definitiva es lo que quiero hacer, veremos si se puede.
Después pongo el resultado. -
AutorEntradas