Olá pessoal… Sou novo em fases de relatório e preciso de uma ajudinha de voces se for possível
já dei uma olhada boa nos tópicos por aqui e não consegui nada ainda rs.
é o seguinte eu fiz um relatório e este terá que preencher uma ficha que já esta pronta
irei apenas preencher os campos dela por fim ja enquadrei todos fiz o testes ela ja esta funcionando
porem preciso imprimir nesta ficha apenas o registro que será selecionado na jTable
o relatório já esta funcionando mas se existir mais de um registro ele ira imprimar também
o que eu queria era passar por parâmetro o id da ficha para que ela imprima somente o registro selecionado
em fim como eu chamo meu relatório RelAso.jasper que esta no pacote relatorio através do evento do botão passando um valor por parâmetro?
Obs: no próprio relatório eu já construi o select atravéz do query design como vou mandar um parâmetro para ele ?
como chamar o relatório…
já tentei os outros tópicos, mas me parece que tem que ser copiado algo para a pasta do netbeans
pois alguns dos trechos dos codigos o netbeans nao reconhece até os imports me ajudem please help me! :lol: obrigado desde já.
Chamar o relatório utilizando o ireport e netbeans 6.8 pelo evento do botão
6 Respostas
Olá amigo
imprimirOrdemServicoButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
imprimirOrdemServicoButton_action(e);
} catch (JRException ex) {
Logger.getLogger(OrdemServicoDetailFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
})
.
.
.
public void imprimirOrdemServicoButton_action(ActionEvent e) throws JRException {
RelatorioMBean relOrdemservico = new RelatorioMBean(conn);
relOrdemservico.geraRelatorio("/relatorios/ordemservico.jasper",OrdemServicoDetailFrameController.pk);
}
package relatorios;
import java.io.File;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.*;
import org.postgresql.core.ConnectionFactory;
public class RelatorioMBean {
//extends AbstractCrudBean<Relatorio> {
public Connection conn = null;
public RelatorioMBean(Connection conn) throws JRException {
this.conn = conn;
}
// public static void main(String[] args) throws JRException, Exception {
// new geraRelatorio();
// }
public void geraRelatorio(String pathReport, String pk) throws JRException {
//supondo que o teu ficheiro teste.jasper esteja dentro da tiua aplicação
Map<String, Object> parametros = new HashMap<String, Object>();
URL reportURL = RelatorioMBean.class.getResource("/relatorios");
String reportDir = reportURL.getFile();
// parametros.put("REPORT_PATH", reportDir);
HashMap map = new HashMap();
map.put("OS_ID", Integer.parseInt(pk));
URL relatorioURL = RelatorioMBean.class.getResource(pathReport);
File file = new File(relatorioURL.getFile());
// JasperReport relatorioJasper = (JasperReport) JRLoader.loadObject(relatorioURL);
JasperReport jr = (JasperReport) JRLoader.loadObject(relatorioURL);
JasperPrint jp = JasperFillManager.fillReport(jr, map, conn);
JasperViewer jv = new JasperViewer(jp, false);
jv.setVisible(true);
}
}
espero que isso ajude.
Silvio Guedes
Olá amigo obrigado ai pela atenção…
onde eu vou definir o nome do parametro ?
onde o coloco o nome do meu relatorio que seria RelAso.jasper ?
desculpe a ignorância mas esse código ainda é muito confuso para mim rs
se puder me passar algo mais explicativo… abrigado.
Olá amigo
1 -onde eu vou definir o nome do parametro ?
Resposta:
Map<String, Object> parametros = new HashMap<String, Object>();
parametros.put("PARAMETRO", grupo.getParametro());
relOrdemservico.geraRelatorio("/relatorios/ordemservico.jasper", parametros); ---> Aqui vc passa o nome do relatório e parametro(s).
public void geraRelatorio(String pathReport, Map<String, Object> parametros) throws JRException {
//supondo que o teu ficheiro teste.jasper esteja dentro da tua aplicação
Map<String, Object> parametros = new HashMap<String, Object>();
URL reportURL = RelatorioMBean.class.getResource("/relatorios");
String reportDir = reportURL.getFile();
parametros = getParameter(parametros);
URL relatorioURL = RelatorioMBean.class.getResource(pathReport);
File file = new File(relatorioURL.getFile());
JasperReport jr = (JasperReport) JRLoader.loadObject(relatorioURL);
JasperPrint jp = JasperFillManager.fillReport(jr, parametros, conn);
JasperViewer jv = new JasperViewer(jp, false);
jv.setVisible(true);
}
Silvio Guedes
E ai Silvio obrigado ai pela ajuda nao consegui ainda rs ta dando uns erros entao
resolvi ir por partes…
primeiro vou tentar apenas chamar o relatorio para depois passar parametros
me corrige ai…
meu metodo chamado pelo botão
public void printe() throws JRException {
JasperReport jasper = (JasperReport) JRLoader.loadObject("C:/Users/Paulo Camargo/Documents/NetBeansProjects/sisaso/src/relatorio/RelAso.jasper");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasper, null, conexao);
//abre preview
JasperViewer.viewReport(jasperPrint);
}
e esse é o erro que esta dando…
Exception in thread “AWT-EventQueue-0” java.lang.NoClassDefFoundError: org/springframework/core/io/Resource
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:161)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:119)
at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:57)
será que nao consigo nem chamar meu relatorio rs
t+ e obrigado pela atenção 
Olá amigo
vc está usando swing ou web neste desenvolvimento?
Silvio Guedes
Estou usando o Swing.
estou achando meio estranho não ter dado certo ainda
veja bem instalei o plugin mas só fui utilizar ele bem depois
quando comecei com os relatórios os importes não funcionavam
então fui em adicionar a biblioteca de cara la estava o ireport em formato .zip
e também adicionei um jasper que estava por lá a fim de retirar os erros de importes
esse jasper virou uma lista um pouco grande na minha biblioteca porem .jar e os importes funcionaram
é assim mesmo ?
abração obrigado.