Pessoal tou tentando rodar um relatório mas num tou conseguindo…
Ja tentei os diversos exeplos do google e nada…
Eu 100% inesperiente no assunto.
Segue abaixo o código:
Interface JRDataSource
[code]import net.sf.jasperreports.engine.JRField;
public interface JRDataSource{
public Object getFieldValue(JRField jrFiels);
public boolean next();
}
[/code]
ClienteJRDataSource
[code]import java.util.Iterator;
import java.util.Vector;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
public class ClienteJRDataSource implements JRDataSource {
private Iterator<Cliente> iterator;
private Cliente cursor;
public ClienteJRDataSource(Vector<Cliente> cliente) {
super();
iterator = cliente.iterator();
}
public boolean next() throws JRException {
boolean retorno = iterator.hasNext();
if(retorno){
cursor=iterator.next();
}
return retorno;
}
public Object getFieldValue(JRField nome) throws JRException {
Cliente cliente = cursor;
if (nome.getName().equals("NOME")) {
return cliente.getNome();
}
if (nome.getName().equals("CODIGO")) {
return cliente.getCodigoControle();
}
if (nome.getName().equals("CPF")) {
return cliente.getCodigo();
}
return null;
}
}
[/code]
ClienteJRDatSourceFactory
[code]import java.util.Vector;
import net.sf.jasperreports.engine.JRDataSource;
public class ClienteJRDataSourceFactory {
private static JRDataSource data;
public static JRDataSource createDatasource() {
if (data == null) {
Cliente c=new Cliente();
c=new Cliente("Maria Chiquinha","123.456.789-01","A001");
Vector<Cliente> cliente=new Vector<Cliente>();
cliente.add(c);
c=new Cliente("João Paulo", "111.111.111-11", "A002");
cliente.add(c);
c=new Cliente("José da Silva", "222.222.222-22", "A003");
cliente.add(c);
data = new ClienteJRDataSource(cliente);
}
return data;
}
}
[/code]
Principal
[code]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 Gerarelatorio {
public static void gerarRelatorio(JRDataSource source) throws JRException {
Map map = new HashMap();
JasperFillManager.fillReportToFile("Teste.jasper", map, source);
JasperViewer.viewReport("Teste.jrprint", false);
}
public static void main(String[] args) {
try {
Gerarelatorio.gerarRelatorio(ClienteJRDataSourceFactory
.createDatasource());
} catch (JRException e) {
e.printStackTrace();
}
}
}
[/code]
Testei outros tb… mas nada…
Quero adicionar uma collection em um relatório… na verdade é uma tabela…