iReport sem conexao ao bd usando jTable?

salve galera

seguinte, eu tenho um relatorio onde mando alguns campos, ja consigo fazer isso blzinha usando parameters, porem agora quero pegar os dados de uma jtable que tem varias linhas e ir mandando para o relatorio.

to tentando assim.

try {
            String arquivo = "relatorios/Comanda.jasper";
            java.io.InputStream file = getClass().getClassLoader().getResourceAsStream(arquivo);
            Map parametros = new HashMap();
            for(int x = 0; x < tabelaConsumo.getRowCount(); x++){
                parametros.put("produto", tabelaConsumo.getModel().getValueAt(x, 1));                                
            }
            JasperPrint printer = JasperFillManager.fillReport(file, parametros, new JREmptyDataSource());
            JRViewer view = new JRViewer(printer);            
            JDialog dialog = new JDialog();
            dialog.getContentPane().add(view);
            new AbreRelatorios().abreRelatorio(dialog);
            
        } catch (JRException ex) {
            Logger.getLogger(FechamentoDeConta.class.getName()).log(Level.SEVERE, null, ex);
        }

dessa maneira q estou fazendo ai, ele passa pelo for e pega apenas o ultimo valor, como eu faço para mandar todos os valores do for ??? Pensei em fazer assim.

  for(int x = 0; x < tabelaConsumo.getRowCount(); x++){
                parametros.put("produto", tabelaConsumo.getModel().getValueAt(x, 1));                                
                 JasperPrint printer = JasperFillManager.fillReport(file, parametros, new JREmptyDataSource());
            }
          
            JRViewer view = new JRViewer(printer);            
          

porem dessa maneira eu perco a referencia a variavel printer que instancia JasperPrint, como eu faço para naum perder essa referencia ???

Alguma dica de como fazer isso ??? qual seria a melhor maneira ?

bom Galera, como ninguém respondeu e eu consegui fazer o esquema, quero postar aqui como fazer pois procurei muito para chegar ao sucesso…entaum, la vai.

//passando valores para  um relatorio ireport sem conexao no banco e pegando valores da jtable

//metodo chamado em um jbutton
public void abrirComanda() throws JRException{
        String arquivo = "Relatorios/EmitirComanda.jasper"; //arquivo de relatorio
        java.io.InputStream file = getClass().getClassLoader().getResourceAsStream(arquivo); //carrego o arquivo
        JRTableModelDataSource tabela = new JRTableModelDataSource(tabelaConsumo.getModel()); //aqui eu crio um datasource usando a propria jtable
        Map parametros = new HashMap(); //apenas crio um map, mas nem passo parametro nem nada, os parametros sao as colunas da jtable
        JasperPrint printer = JasperFillManager.fillReport(file, parametros, tabela); //aqui eu passo a jtable(tabela) para o relatorio
        JRViewer view = new JRViewer(printer); //preview
        JDialog dialog = new JDialog(); //jdialog que contem o preview
        dialog.getContentPane().add(view); //adiciono o preview
        dialog.setSize(800,600);
        dialog.setLocationRelativeTo(this);
        dialog.setModalityType(ModalityType.APPLICATION_MODAL);
        dialog.setModal(true);
        dialog.setVisible(true);
    }

public void botaoActionPerformed(){
  abrirComanda(); //chama o metodo
}

Agora é só ir até o model do relatório no meu caso é “EmitirComanda.jrxml” e criar os “fields” com o nome de COLUMN_0, COLUMN_1 etc…etc…Cada field ira receber os dados da jtable recebida conforme sua coluna.
No modelo EmitirComanda.jrxml va ate suas propriedades e mude a opcao: “When No Data” para “No Data Section”, isso dira para seu .jrxml q ele naum ira receber uma conexao SQL…depois desses passos, basta compilar o relatorio e a aplicacao e rodar para ver a magia acontecer. :wink:

t+

AAAAEEEHHH cara salvo meu dia!!! :smiley:

Este foi o melhor post que encontrei para desenvolver um relatório no IReport sem conxão com o banco, só utilizando os dados de um jTbale. Fiz exatamente como está neste pos, porém está apresentando o seguinte erro:

Exception occurred during event dispatching: java.lang.NullPointerException at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2264) at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2277) at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2748) at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780) at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280) at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.<init>(ContextClassLoaderObjectInputStream.java:53) at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:214) at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:632) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:956) at Janelas.JEntrada.imprimeRelatorio(JEntrada.java:48) at Janelas.JEntrada.jButton1ActionPerformed(JEntrada.java:245) at Janelas.JEntrada.access$200(JEntrada.java:29) at Janelas.JEntrada$4.actionPerformed(JEntrada.java:125) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6038) at javax.swing.JComponent.processMouseEvent(JComponent.java:3260) at java.awt.Component.processEvent(Component.java:5803) at java.awt.Container.processEvent(Container.java:2058) at java.awt.Component.dispatchEventImpl(Component.java:4410) at java.awt.Container.dispatchEventImpl(Container.java:2116) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) at java.awt.Container.dispatchEventImpl(Container.java:2102) at java.awt.Window.dispatchEventImpl(Window.java:2429) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:177) at java.awt.Dialog$1.run(Dialog.java:1039) at java.awt.Dialog$3.run(Dialog.java:1091) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Dialog.java:1089) at java.awt.Component.show(Component.java:1419) at java.awt.Component.setVisible(Component.java:1372) at java.awt.Window.setVisible(Window.java:801) at java.awt.Dialog.setVisible(Dialog.java:979) at Janelas.JanelaPrincipal.jMenuItem1ActionPerformed(JanelaPrincipal.java:95) at Janelas.JanelaPrincipal.access$000(JanelaPrincipal.java:11) at Janelas.JanelaPrincipal$1.actionPerformed(JanelaPrincipal.java:49) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.AbstractButton.doClick(AbstractButton.java:357) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1170) at javax.swing.plaf.basic.BasicPopupMenuUI$Actions.doReturn(BasicPopupMenuUI.java:438) at javax.swing.plaf.basic.BasicPopupMenuUI$Actions.actionPerformed(BasicPopupMenuUI.java:412) at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1636) at javax.swing.JComponent.processKeyBinding(JComponent.java:2844) at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:267) at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:216) at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2921) at javax.swing.JComponent.processKeyBindings(JComponent.java:2913) at javax.swing.JComponent.processKeyEvent(JComponent.java:2807) at java.awt.Component.processEvent(Component.java:5815) at java.awt.Container.processEvent(Container.java:2058) at java.awt.Component.dispatchEventImpl(Component.java:4410) at java.awt.Container.dispatchEventImpl(Container.java:2116) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848) at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:693) at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:958) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:830) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:657) at java.awt.Component.dispatchEventImpl(Component.java:4282) at java.awt.Container.dispatchEventImpl(Container.java:2116) at java.awt.Window.dispatchEventImpl(Window.java:2429) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Alguem sabe o que pode esta ocorrendo!?
Desde já agradeço!

[quote=Kurio]Este foi o melhor post que encontrei para desenvolver um relatório no IReport sem conxão com o banco, só utilizando os dados de um jTbale. Fiz exatamente como está neste pos, porém está apresentando o seguinte erro:

Exception occurred during event dispatching: java.lang.NullPointerException at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2264)
Alguem sabe o que pode esta ocorrendo!?
Desde já agradeço![/quote]

Olá. O que acontece é que você não encontrar o arquivo com a extensão .jasper. Desculpem-me por não auréola Português. Este foi traduzida com Google Translate.
Originalmente, o caminho do arquivo no exemplo foi:
String arquivo = “relatorios/Comanda.jasper”;
Saudações