Olá .....
SIMPLIFICANDO : Estou criando um relatorio no qual eu tenho um subrelatorio q tem dois outros subrelatorio e um subrelatorio não aparece .
O meu relatorio principal só possui um subrelatorio e dentro desse subrelatorio tem outros dois um é um subrelatorio de Audio e outro é um subrelatorio de departamento. o Subrelatorio de Audio está aparecendo normal o subrelatorio de Departamento não .... eu coloquei varios System.out para ver o q está ocorrendo o meu arrayList estava sendo preenchido na dataSource porem o metodo :public boolean next() {...}
ALGUEM SABE O QUE ESTÁ OCORRENDO .... ??
o meu codigo .
ESSA É A DATASOURCE PRINCIPAL , A Q EU CHAMO NA SERVELETpublic class RelatorioDataSource implements Serializable ,JRDataSource {
Iterator<AuxiliarRelatorio> itrAtividade ;
Object valor; // recebe o proximo objeto
boolean irParaProximaAtividade = true;
public RelatorioDataSource(List listaDeAudio){
super();
this.itrAtividade = listaDeAudio.iterator();
}
public boolean next() throws JRException {
valor = itrAtividade.hasNext()? itrAtividade.next():null;
irParaProximaAtividade = (valor !=null ); //
return irParaProximaAtividade;
}
public Object getFieldValue(JRField field) throws JRException {
Object value = null ;
AuxiliarRelatorio audios = new AuxiliarRelatorio();
audios = (AuxiliarRelatorio) valor;
if ("ListaAudios".equals(field.getName())) {
value = new SubRelatorioDataSource(audios.getListaAuxiliar());
}
return value;
}
}
public class SubRelatorioDataSource implements Serializable, JRDataSource {
Iterator<AuxiliarRelatorio> itrAtividade ;
Object valor; // recebe o proximo objeto
boolean irParaProximaAtividade = true;
public SubRelatorioDataSource(List listaDeAudio){
super();
this.itrAtividade = listaDeAudio.iterator();
}
public boolean next() throws JRException {
valor = itrAtividade.hasNext()? itrAtividade.next():null;
irParaProximaAtividade = (valor !=null ); //
return irParaProximaAtividade;
}
public Object getFieldValue(JRField field) throws JRException {
Object value = null ;
AuxiliarRelatorio aud = new AuxiliarRelatorio();
aud = (AuxiliarRelatorio) valor;
if ("tipo".equals(field.getName())){
value = aud.getTipoAudio();
}
if ("Audios".equals(field.getName())) {
value = new JRBeanCollectionDataSource(aud.getListaAudios());
}
if ("SubLista".equals(field.getName())) {
value = new TituloDataSource(aud.getSubLista());
}
return value;
}
}
public class TituloDataSource implements Serializable,JRDataSource {
Iterator itrAtividade ;
Object valor; // recebe o proximo objeto
boolean irParaProximaAtividade = true;
public TituloDataSource(List listaDeAudio){
super();
this.itrAtividade = listaDeAudio.iterator();
}
public boolean next() throws JRException {
System.out.println("eNTROU EM NEXT ");
valor = itrAtividade.hasNext()? itrAtividade.next():null;
irParaProximaAtividade = (valor !=null );
return irParaProximaAtividade;
}
public Object getFieldValue(JRField field) throws JRException {
Object value = null ;
SubRelatorioClienteDataView sub = new SubRelatorioClienteDataView();
sub = (SubRelatorioClienteDataView) valor;
if ("duracaoTotal".equals(field.getName())){
value = sub.getDuracaoTotal();
}
if ("quantidade".equals(field.getName())) {
value = sub.getQuantidade();
}
if ("subTitulo".equals(field.getName())) {
value = sub.getSubTitulo();
}
if ("valorTotal".equals(field.getName())) {
value = sub.getValorTotal();
}
return value;
}
}
