Olá amigos
Estou com um problema na hora de gerar relatórios no meu aplicativo.jar do lado do cliente.Vou explicar melhor
Criei um aplicativo no netbeans com varias telas e adicionei um botão em cada uma destas telas para imprimir relatório de acordo com cada tela até aqui beleza, no netbeans ou no arquivo gerado.jar na maquina que está o banco de dados(servidor) tudo bem ele abre o relatório e funciona beleza, mas se instalo o aplicativo em outra maquina (cliente) ele funciona normalmente mas os relatórios não abrem, gostaria de saber como fazer para abrir o relatório na maquina do cliente.
segue um codigo de uma de minhas telas com o código do botão imprimir relatório que no servidor abre corretamente, mas no cliente não abre
package correge.siscor.view;
import com.mysql.jdbc.Connection;
import correge.siscor.bean.ConexaoMsql;
import java.awt.EventQueue;
import java.beans.Beans;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.persistence.RollbackException;
import javax.swing.JFrame;
import javax.swing.JPanel;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
/**
*
-
@author willian
*/
public class AndaresView extends JPanel {public AndaresView() { initComponents(); if (!Beans.isDesignTime()) { entityManager.getTransaction().begin(); } }
/** This method is called from within the constructor to
-
initialize the form.
-
WARNING: Do NOT modify this code. The content of this method is
-
always regenerated by the Form Editor. */ @SuppressWarnings(“unchecked”) // private void initComponents() { bindingGroup = new org.jdesktop.beansbinding.BindingGroup();
entityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory(“siscorjavaPU”).createEntityManager(); query = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery(“SELECT a FROM Andar a”); list = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections.observableList(query.getResultList()); masterScrollPane = new javax.swing.JScrollPane(); masterTable = new javax.swing.JTable(); nomeAndarLabel = new javax.swing.JLabel(); nomeAndarField = new javax.swing.JTextField(); saveButton = new javax.swing.JButton(); refreshButton = new javax.swing.JButton(); newButton = new javax.swing.JButton(); deleteButton = new javax.swing.JButton(); jButton1 = new javax.swing.JButton();
FormListener formListener =
new FormListener();setBackground(new
java.awt.Color(102, 102, 102));masterTable.setForeground(new java.awt.Color(0, 102, 102));org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, list, masterTable); org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${nomeAndar}")); columnBinding.setColumnName(“Nome Andar”); columnBinding.setColumnClass(String.class); bindingGroup.addBinding(jTableBinding);
masterScrollPane.setViewportView(masterTable);nomeAndarLabel.setForeground(new java.awt.Color(255, 255, 255));
nomeAndarLabel.setText(“Nome Andar:”);org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.nomeAndar}"), nomeAndarField, org.jdesktop.beansbinding.BeanProperty.create(“text”)); binding.setSourceUnreadableValue(null); bindingGroup.addBinding(binding); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), nomeAndarField, org.jdesktop.beansbinding.BeanProperty.create(“enabled”)); bindingGroup.addBinding(binding);
saveButton.setIcon(new javax.swing.ImageIcon(“I:\Siscor\Imagens\disk.png”)); // NOI18N saveButton.setToolTipText(“Gravar o registro”); saveButton.addActionListener(formListener);
refreshButton.setIcon(new javax.swing.ImageIcon(“I:\Siscor\Imagens\cancel.png”)); // NOI18N refreshButton.setToolTipText(“Cancelar o registro”); refreshButton.addActionListener(formListener);
newButton.setIcon(new javax.swing.ImageIcon(“I:\Siscor\Imagens\page_edit.png”)); // NOI18N newButton.setToolTipText(“Inserir novo registro”); newButton.addActionListener(formListener);
deleteButton.setIcon(new javax.swing.ImageIcon(“I:\Siscor\Imagens\delete.png”)); // NOI18N
deleteButton.setToolTipText(“Excluir o registro”);binding =
org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), deleteButton,org.jdesktop.beansbinding.BeanProperty.create(“enabled”));
bindingGroup.addBinding(binding);deleteButton.addActionListener(formListener);jButton1.setIcon(new javax.swing.ImageIcon(“I:\Siscor\Imagens\printer_empty.png”)); // NOI18N jButton1.setToolTipText(“Imprimir relatório”); jButton1.addActionListener(formListener);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(masterScrollPane, javax.swing.GroupLayout.Alignment.LEADING, 0, 0, Short.MAX_VALUE) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addComponent(nomeAndarLabel) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(16, 16, 16) .addComponent(newButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(deleteButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(refreshButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(saveButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton1)) .addGroup(layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(nomeAndarField, javax.swing.GroupLayout.PREFERRED_SIZE, 321, javax.swing.GroupLayout.PREFERRED_SIZE))))) .addContainerGap()) );
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {deleteButton, newButton, refreshButton, saveButton});layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addComponent(masterScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 112, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(nomeAndarLabel) .addComponent(nomeAndarField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jButton1) .addComponent(saveButton) .addComponent(refreshButton) .addComponent(deleteButton) .addComponent(newButton)) .addContainerGap()) );
bindingGroup.bind();
}
// Code for dispatching events from components to event handlers.
private class FormListener implements java.awt.event.ActionListener { FormListener() {} public void actionPerformed(java.awt.event.ActionEvent evt) { if (evt.getSource() == saveButton) { AndaresView.this.saveButtonActionPerformed(evt); } else if (evt.getSource() == refreshButton) { AndaresView.this.refreshButtonActionPerformed(evt); } else if (evt.getSource() == newButton) { AndaresView.this.newButtonActionPerformed(evt); } else if (evt.getSource() == deleteButton) { AndaresView.this.deleteButtonActionPerformed(evt); } else if (evt.getSource() == jButton1) { AndaresView.this.jButton1ActionPerformed(evt); } } }//
@SuppressWarnings(“unchecked”) private void refreshButtonActionPerformed(java.awt.event.ActionEvent evt) { entityManager.getTransaction().rollback(); entityManager.getTransaction().begin(); java.util.Collection data = query.getResultList(); for (Object entity : data) { entityManager.refresh(entity); } list.clear(); list.addAll(data); }
private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) { int[] selected = masterTable.getSelectedRows(); List<correge.siscor.bean.Andar> toRemove = new ArrayList<correge.siscor.bean.Andar>(selected.length); for (int idx=0; idx<selected.length; idx++) { correge.siscor.bean.Andar a = list.get(masterTable.convertRowIndexToModel(selected[idx])); toRemove.add(a); entityManager.remove(a); } list.removeAll(toRemove); }
private void newButtonActionPerformed(java.awt.event.ActionEvent evt) { correge.siscor.bean.Andar a = new correge.siscor.bean.Andar(); entityManager.persist(a); list.add(a); int row = list.size()-1; masterTable.setRowSelectionInterval(row, row); masterTable.scrollRectToVisible(masterTable.getCellRect(row, 0, true)); nomeAndarField.requestFocus(); }
private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) { try { entityManager.getTransaction().commit(); entityManager.getTransaction().begin(); } catch (RollbackException rex) { rex.printStackTrace(); entityManager.getTransaction().begin(); List<correge.siscor.bean.Andar> merged = new ArrayList<correge.siscor.bean.Andar>(list.size()); for (correge.siscor.bean.Andar a : list) { merged.add(entityManager.merge(a)); } list.clear(); list.addAll(merged); } }
[color=red] AQUI ESTÁ A PARTE DO CÓDIGO DO BOTÃO IMPRIMIR ONDE CHAMO MEU RELATÓRIO[/color]
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { try { Connection con = (Connection) new ConexaoMsql().getConnection(); HashMap parametros = new HashMap(); JasperPrint jp = JasperFillManager.fillReport("./Relatórios/RelAndares.jasper", parametros, con); JasperViewer jrv = new JasperViewer(jp); JasperViewer.viewReport(jp, false);// fechar apenas o relatório} catch (Exception e) { e.printStackTrace(); }}
// Variables declaration - do not modify private javax.swing.JButton deleteButton; private javax.persistence.EntityManager entityManager; private javax.swing.JButton jButton1; private java.util.List<correge.siscor.bean.Andar> list; private javax.swing.JScrollPane masterScrollPane; private javax.swing.JTable masterTable; private javax.swing.JButton newButton; private javax.swing.JTextField nomeAndarField; private javax.swing.JLabel nomeAndarLabel; private javax.persistence.Query query; private javax.swing.JButton refreshButton; private javax.swing.JButton saveButton; private org.jdesktop.beansbinding.BindingGroup bindingGroup; // End of variables declaration
public static void main(final String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { JFrame frame = new JFrame(); frame.setContentPane(new AndaresView()); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.pack(); frame.setVisible(true); frame.setTitle(args[0]); } }); }
-
}
Desde já agradeço a ajuda dos amigos e espero uma ajuda para resolver este probleminha