Código:
sin embargo al generarlo "manualmente mediante": <action name="reporteEstadoDeCuenta" class="mx.dsm.interschool.finanzas.actions.EstadoDeCuentaAction" method="reporteEstadoDeCuenta">
<result name="success" type="jasper">
<param name="location">/WEB-INF/reportes/estadoDeCuenta/estadoDeCuenta.jasper</param>
<param name="dataSource">listaAlumnos</param>
<param name="format">PDF</param>
<param name="reportParameters">reportParams</param>
</result>
<result name="input">/WEB-INF/jsp/operacion/reporteEstadoDeCuenta/editReporteEstadoDeCuenta.jsp</result>
</action>
Código:
salta un error diciendo que "Unknown property for class: Alumno" el cual es atributo que regresa la lista de cargos/pagos, necesito hacerlo mediante el fillreport, ya que me interesa que se envie por correo electronico y no que se imprima el reporte, si alguen puede ayudarme se los agredesco, dejo algo de mi codigo:JasperPrint jasperPrint = JasperFillManager.fillReport(ServletActionContext.getServletContext().getRealPath("/WEB-INF/reportes/estadoDeCuenta/estadoDeCuenta.jasper"), reportParams,dataSource);
mi clase Alumno:
Código:
mi jrxml:public class Alumno extends mx.dsm.interschool.catalogo.ejb.entity.Persona implements Serializable {
@Transient
private List ListaCargos=new ArrayList();
@Transient
private List ListaPagos=new ArrayList();
@Transient
private JRBeanCollectionDataSource ListaCargosDS;
@Transient
private JRBeanCollectionDataSource ListaPagosDS;
public Alumno() {
}
public boolean equals(Object aObj) {
if (aObj == this)
return true;
if (!(aObj instanceof Alumno))
return false;
Alumno alumno = (Alumno)aObj;
if ((getIdAlumno() != null && !getIdAlumno().equals(alumno.getIdAlumno())) || (getIdAlumno() == null && alumno.getIdAlumno() != null))
return false;
return true;
}
public int hashCode() {
int hashcode = 0;
hashcode = hashcode + (getIdAlumno() == null ? 0 : getIdAlumno().hashCode());
return hashcode;
}
@ManyToOne(targetEntity=mx.dsm.interschool.catalogo.ejb.entity.Familia.class, fetch=FetchType.LAZY)
@org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.LOCK})
@JoinColumns({ @JoinColumn(name="IdFamilia", referencedColumnName="IdFamilia") })
@org.hibernate.annotations.LazyToOne(value=org.hibernate.annotations.LazyToOneOption.NO_PROXY)
private mx.dsm.interschool.catalogo.ejb.entity.Familia familia;
@Column(name="IdAlumno", nullable=false, unique=true, length=25)
private String idAlumno;
@Column(name="NumeroOficial", nullable=true, length=25)
private String numeroOficial;
@OneToOne(mappedBy="alumno", targetEntity=mx.dsm.interschool.catalogo.ejb.entity.Prospecto.class, fetch=FetchType.LAZY)
@org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.LOCK})
@org.hibernate.annotations.LazyToOne(value=org.hibernate.annotations.LazyToOneOption.NO_PROXY)
private mx.dsm.interschool.catalogo.ejb.entity.Prospecto prospecto;
@RequiredStringValidator(message = "Introduce IdAlumno", key = "i18n.key", shortCircuit = true, trim = true)
public void setIdAlumno(String value) {
this.idAlumno = value.toUpperCase();
}
public String getIdAlumno() {
return idAlumno;
}
public void setNumeroOficial(String value) {
this.numeroOficial = value.toUpperCase();
}
public String getNumeroOficial() {
return numeroOficial;
}
public void setProspecto(mx.dsm.interschool.catalogo.ejb.entity.Prospecto value) {
this.prospecto = value;
}
public mx.dsm.interschool.catalogo.ejb.entity.Prospecto getProspecto() {
return prospecto;
}
public void setFamilia(mx.dsm.interschool.catalogo.ejb.entity.Familia value) {
this.familia = value;
}
public mx.dsm.interschool.catalogo.ejb.entity.Familia getFamilia() {
return familia;
}
public String toString() {
return super.toString();
}
public List getListaCargos() {
return ListaCargos;
}
public void setListaCargos(List Cargos) {
this.ListaCargos = Cargos;
}
public JRBeanCollectionDataSource getListaCargosDS(){
this.ListaCargosDS=new JRBeanCollectionDataSource(ListaCargos);
return this.ListaCargosDS;
}
public List getListaPagos() {
return ListaPagos;
}
public void setListaPagos(List Pagos) {
this.ListaPagos = Pagos;
}
public JRDataSource getListaPagosDS(){
ListaPagosDS=new JRBeanCollectionDataSource(ListaPagos);
return ListaPagosDS;
}
Código:
el error que recibo es:<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report name" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["/home/alvaro/Documentos/NuevoInterSchool/Interschool/ISFinanzas/web/WEB-INF/reportes/estadoDeCuenta/"]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[]]>
</queryString>
<field name="nombreCompleto" class="java.lang.String">
<fieldDescription><![CDATA[nombreCompleto]]></fieldDescription>
</field>
<field name="idPersona" class="java.lang.Long">
<fieldDescription><![CDATA[idPersona]]></fieldDescription>
</field>
<field name="idAlumno" class="java.lang.String">
<fieldDescription><![CDATA[idAlumno]]></fieldDescription>
</field>
<field name="ListaCargosDS" class="net.sf.jasperreports.engine.JRDataSource">
<fieldDescription><![CDATA[ListaCargosDS]]></fieldDescription>
</field>
<field name="ListaPagosDS" class="net.sf.jasperreports.engine.JRDataSource">
<fieldDescription><![CDATA[ListaPagosDS]]></fieldDescription>
</field>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band splitType="Stretch"/>
</title>
<pageHeader>
<band splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band splitType="Stretch"/>
</columnHeader>
<detail>
<band height="372" splitType="Stretch">
<staticText>
<reportElement x="325" y="0" width="153" height="20"/>
<textElement>
<font size="15" isBold="true"/>
</textElement>
<text><![CDATA[Estado De Cuenta]]></text>
</staticText>
<textField>
<reportElement x="0" y="21" width="325" height="20"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA["Alumno: "+$F{nombreCompleto}]]></textFieldExpression>
</textField>
<subreport>
<reportElement x="0" y="48" width="802" height="100"/>
<dataSourceExpression><![CDATA[$F{ListaCargosDS}]]></dataSourceExpression>
<subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + "estadoDeCuentaCargos.jasper"]]></subreportExpression>
</subreport>
<subreport>
<reportElement stretchType="RelativeToTallestObject" x="0" y="268" width="802" height="100"/>
<dataSourceExpression><![CDATA[$F{ListaPagosDS}]]></dataSourceExpression>
<subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + "estadoDeCuentaPagos.jasper"]]></subreportExpression>
</subreport>
</band>
</detail>
<columnFooter>
<band splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band splitType="Stretch"/>
</pageFooter>
<summary>
<band height="27" splitType="Stretch"/>
</summary>
</jasperReport>
Código:
GRAVE: net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : ListaCargosDS Caused by: java.lang.NoSuchMethodException: Unknown property 'ListaCargosDS' on class 'class mx.dsm.interschool.catalogo.ejb.entity.Alumno'
o alguna alternativa para mprimir un reporte como el que me interesa gracias


