tentei criar um novo relatorio simples q seria chamado pelo principal, e nem esse funcionou, ele simplesmente ignora o subrelatorio e mostra somente o principal, vo colocar as classes q estou utilizando de repente o erro possa estar nelas…
essa eh minha classe DANFEDATASOURCE
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
import javax.swing.JOptionPane;
import modelo.nfe.NFe;
import modelo.nfe.NfeDet;
import modelo.nfe.NfeTotal;
import negocio.nfe.NfeDetJpaController;
import negocio.nfe.NfeTotalJpaController;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
public class DanfeDataSource implements JRDataSource {
private Iterator<NFe> iterator;
private NFe cursor;
private static JRDataSource data;
public DanfeDataSource(Vector<NFe> nfe) {
super();
iterator = nfe.iterator();
}
@Override
public boolean next() throws JRException {
boolean retorno = iterator.hasNext();
if (retorno) {
cursor = iterator.next();
}
return retorno;
}
@Override
public Object getFieldValue(JRField nome) throws JRException {
NFe nfe = cursor;
List<NfeTotal> lsttotal = new ArrayList<NfeTotal>();
NfeTotalJpaController nfetotaljpa = new NfeTotalJpaController();
lsttotal = nfetotaljpa.findTotalbyNFe(nfe);
if (nome.getName().equals("nfe_versao")) {
return nfe.getVersao();
}
if (nome.getName().equals("nfe_id")) {
return nfe.getId();
}
if (nome.getName().equals("nfe_signature")) {
return nfe.getSignature();
}
if (nome.getName().equals("nfe_xnemp")) {
return nfe.getxNEmp();
}
if (nome.getName().equals("nfe_xped")) {
return nfe.getxPed();
}
if (nome.getName().equals("nfe_xcont")) {
return nfe.getxCont();
}
if (nome.getName().equals("nfeide_serie")) {
return nfe.getNfeIde().getSerie();
}
if (nome.getName().equals("nfeemit_xnome")) {
return nfe.getNfeEmit().getxNome();
}
if (nome.getName().equals("nfeide_demi")) {
return nfe.getNfeIde().getdEmi();
}
if (nome.getName().equals("nfetotal_vnf")) {
return lsttotal.get(0).getvNF();
}
if (nome.getName().equals("nfedest_cnpj")) {
return nfe.getNfeDest().getCNPJ();
}
if (nome.getName().equals("nfedest_xnome")) {
return nfe.getNfeDest().getxNome();
}
if (nome.getName().equals("nfedest_xnome")) {
return nfe.getNfeDest().getxNome();
}
if (nome.getName().equals("nfeide_nnf")) {
return nfe.getNfeIde().getnNF();
}
if (nome.getName().equals("nfeide_tpnf")) {
return nfe.getNfeIde().getTpNF();
}
if (nome.getName().equals("nfeide_natop")) {
return nfe.getNfeIde().getNatOp();
}
if (nome.getName().equals("nfeemit_ie")) {
return nfe.getNfeEmit().getIE();
}
if (nome.getName().equals("nfeemit_iest")) {
return nfe.getNfeEmit().getIEST();
}
if (nome.getName().equals("nfeemit_cnpj")) {
return nfe.getNfeEmit().getCNPJ();
}
if (nome.getName().equals("nfedestend_nro")) {
return nfe.getNfeDest().getNfeDestEnd().getNro();
}
if (nome.getName().equals("nfedestend_xcpl")) {
return nfe.getNfeDest().getNfeDestEnd().getxCpl();
}
if (nome.getName().equals("nfedestend_xlgr")) {
return nfe.getNfeDest().getNfeDestEnd().getxLgr();
}
if (nome.getName().equals("nfedestend_xbairro")) {
return nfe.getNfeDest().getNfeDestEnd().getxBairro();
}
if (nome.getName().equals("nfedestend_cep")) {
return nfe.getNfeDest().getNfeDestEnd().getCEP();
}
if (nome.getName().equals("nfeide_dsaient")) {
return nfe.getNfeIde().getdSaiEnt();
}
if (nome.getName().equals("nfeide_hsaient")) {
return nfe.getNfeIde().gethSaiEnt();
}
if (nome.getName().equals("nfedestend_xmun")) {
return nfe.getNfeDest().getNfeDestEnd().getxMun();
}
if (nome.getName().equals("nfedestend_fone")) {
return nfe.getNfeDest().getNfeDestEnd().getFone();
}
if (nome.getName().equals("nfedestend_xuf")) {
return nfe.getNfeDest().getNfeDestEnd().getxUF();
}
if (nome.getName().equals("nfedest_ie")) {
return nfe.getNfeDest().getIE();
}
if (nome.getName().equals("nfetransp_xnome")) {
return nfe.getNfeTransp().getxNome();
}
if (nome.getName().equals("nfetransp_xender")) {
return nfe.getNfeTransp().getxEnder();
}
if (nome.getName().equals("nfetransp_qvol")) {
return nfe.getNfeTransp().getqVol();
}
if (nome.getName().equals("nfetransp_esp")) {
return nfe.getNfeTransp().getEsp();
}
if (nome.getName().equals("nfetransp_marca")) {
return nfe.getNfeTransp().getMarca();
}
if (nome.getName().equals("nfetransp_esp")) {
return nfe.getNfeTransp().getEsp();
}
if (nome.getName().equals("nfetransp_xmun")) {
return nfe.getNfeTransp().getxMun();
}
if (nome.getName().equals("nfetransp_placa")) {
return nfe.getNfeTransp().getPlaca();
}
if (nome.getName().equals("nfetransp_uf")) {
return nfe.getNfeTransp().getUF();
}
if (nome.getName().equals("nfetransp_cnpj")) {
return nfe.getNfeTransp().getCNPJ();
}
if (nome.getName().equals("nfetransp_ie")) {
return nfe.getNfeTransp().getIE();
}
if (nome.getName().equals("nfetransp_pesob")) {
return nfe.getNfeTransp().getPesoB();
}
if (nome.getName().equals("nfetransp_pesol")) {
return nfe.getNfeTransp().getPesoL();
}
if (nome.getName().equals("nfetransp_nvol")) {
return nfe.getNfeTransp().getnVol();
}
if (nome.getName().equals("nfeemit_im")) {
return nfe.getNfeEmit().getIM();
}
if (nome.getName().equals("nfetotal_vicms")) {
return lsttotal.get(0).getvICMS();
}
if (nome.getName().equals("nfetotal_vserv")) {
return lsttotal.get(0).getvServ();
}
if (nome.getName().equals("nfetotal_vseg")) {
return lsttotal.get(0).getvSeg();
}
if (nome.getName().equals("nfetotal_vdesc")) {
return lsttotal.get(0).getvDesc();
}
if (nome.getName().equals("nfetotal_voutro")) {
return lsttotal.get(0).getvOutro();
}
if (nome.getName().equals("nfetotal_vfrete")) {
return lsttotal.get(0).getvFrete();
}
if (nome.getName().equals("nfetotal_vipi")) {
return lsttotal.get(0).getvIPI();
}
if (nome.getName().equals("nfetotal_vprod")) {
return lsttotal.get(0).getvProd();
}
if (nome.getName().equals("nfetotal_vbc_iss")) {
return lsttotal.get(0).getvBCST();
}
if (nome.getName().equals("nfetotal_viss")) {
return lsttotal.get(0).getvISS();
}
DanfeDataItensSourceFactory.createDatasource(nfe);
return null;
}
}
Essa e DANFEDATASOURCEFACTORY
import java.util.Vector;
import javax.swing.JOptionPane;
import modelo.nfe.NFe;
import negocio.nfe.NFeJpaController;
import net.sf.jasperreports.engine.JRDataSource;
public class DanfeDataSourceFactory {
static NFe Nfe;
private static JRDataSource data;
public static JRDataSource createDatasource() {
if (data == null) {
NFe nfe = new NFe();
NFeJpaController nfejpa = new NFeJpaController();
nfe = nfejpa.findNFe(1L);
Vector<NFe> vtnfe=new Vector<NFe>();
vtnfe.add(nfe);
Nfe = nfe;
data = new DanfeDataSource(vtnfe);
}
return data;
}
}
classe DANFEITENSDATASOURCE
import java.util.Iterator;
import java.util.Vector;
import javax.swing.JOptionPane;
import modelo.nfe.NfeDet;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
public class DanfeItensDataSource implements JRDataSource {
private Iterator<NfeDet> iterator;
private NfeDet cursor;
public DanfeItensDataSource(Vector<NfeDet> nfedet) {
super();
iterator = nfedet.iterator();
}
@Override
public boolean next() throws JRException {
boolean retorno = iterator.hasNext();
if (retorno) {
cursor = iterator.next();
}
return retorno;
}
@Override
public Object getFieldValue(JRField nome) throws JRException {
NfeDet nfedet = cursor;
System.out.println("passou em itens");
System.out.println(nome.getName());
if (nome.getName().equals("nfeprod_cprod")) {
return nfedet.getNfeProd().getcProd();
}
if (nome.getName().equals("nfeprod_infaprod")) {
return nfedet.getNfeProd().getInfAdProd();
}
if (nome.getName().equals("nfeprod_ncm")) {
return nfedet.getNfeProd().getNCM();
}
if (nome.getName().equals("nfeprod_cfop")) {
return nfedet.getNfeProd().getCFOP();
}
if (nome.getName().equals("nfeprod_utrib")) {
return nfedet.getNfeProd().getuTrib();
}
if (nome.getName().equals("nfeprod_qtrib")) {
return nfedet.getNfeProd().getqTrib();
}
if (nome.getName().equals("nfeprod_vuncom")) {
return nfedet.getNfeProd().getvUnCom();
}
if (nome.getName().equals("nfeprod_vprod")) {
return nfedet.getNfeProd().getvProd();
}
if (nome.getName().equals("nfeicms_vbc")) {
return nfedet.getNfeICMS().getvBC();
}
if (nome.getName().equals("nfeicms_vicms")) {
return nfedet.getNfeICMS().getvICMS();
}
if (nome.getName().equals("nfeipi_vipi")) {
return nfedet.getNfeIPI().getvIPI();
}
if (nome.getName().equals("nfeipi_pipi")) {
return nfedet.getNfeIPI().getpIPI();
}
if (nome.getName().equals("nfeicms_picms")) {
return nfedet.getNfeICMS().getpICMS();
}
return null;
}
}
classe DanfeDATAITENSSOURCEFACTORY
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import modelo.nfe.NFe;
import modelo.nfe.NfeDet;
import negocio.nfe.NfeDetJpaController;
import net.sf.jasperreports.engine.JRDataSource;
public class DanfeDataItensSourceFactory {
private static JRDataSource data;
public static JRDataSource createDatasource(NFe nfe) {
if (data == null) {
List<NfeDet> lstdef = new ArrayList<NfeDet>();
NfeDetJpaController nfejpa = new NfeDetJpaController();
lstdef = nfejpa.findDetbyNFe(nfe);
Vector<NfeDet> vtnfe=new Vector<NfeDet>();
vtnfe.addAll(lstdef);
System.out.println(lstdef);
System.out.println(vtnfe);
data = new DanfeItensDataSource(vtnfe);
}
return data;
}
}
e por fim a classe q gera o danfe
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.view.JasperViewer;
public class ImprimeDanfe {
public static void gerarRelatorio(JRDataSource source) throws JRException {
Map map = new HashMap();
JasperFillManager.fillReport("DanfeRetrato.jasper", map, source);
//JasperFillManager.fillReportToFile("nullDanfeItemRetrato.jasper", map, source);
//JasperFillManager.fillReportToFile("/home/f2pro/NetBeansProjects/f2erp/DanfeItemRetrato.jasper", map, source);
//JasperExportManager.exportReportToPdfFile("DanfeRetrato.jrprint");
JasperViewer.viewReport("DanfeRetrato.jrprint", false);
}
public static void main(String[] args) {
try {
ImprimeDanfe.gerarRelatorio(DanfeDataSourceFactory.createDatasource());
// ImprimeDanfe.gerarRelatorio(DanfeDataItensSourceFactory.createDatasource(DanfeDataSourceFactory.returnnfe()));
} catch (JRException e) {
System.out.println("erro " + e);
}
}
Alguem pode me ajudar?