Bom dia pessoal!
To com esses dois problemas já tem um tempo, abaixo postarei a imagem que serve para entender os dois problemas:
Primeiro problema é ao selecionar todas essas linhas e clicar no botão (+adicionar), ela adiciona só a primeira linha no banco de dados, e não todas informações como eu preciso. Segue o código que hoje só faz uma adição:
private void adicionar() {
String sql = "insert into tblgem(lista,dat,pep,listec,item,material,txtbre,qtde,um,rncrm,necob,natnf,local,pepaux,projeto) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
try {
pst = conexao.prepareStatement(sql);
pst.setString(1, jTable1.getValueAt(jTable1.getSelectedRow(), 0 ).toString());
pst.setString(2, jTable1.getValueAt(jTable1.getSelectedRow(), 1).toString());
pst.setString(3, jTable1.getValueAt(jTable1.getSelectedRow(), 2).toString());
pst.setString(4, jTable1.getValueAt(jTable1.getSelectedRow(), 3).toString());
pst.setString(5, jTable1.getValueAt(jTable1.getSelectedRow(), 4).toString());
pst.setString(6, jTable1.getValueAt(jTable1.getSelectedRow(), 5).toString());
pst.setString(7, jTable1.getValueAt(jTable1.getSelectedRow(), 6).toString());
pst.setString(8, jTable1.getValueAt(jTable1.getSelectedRow(), 7).toString());
pst.setString(9, jTable1.getValueAt(jTable1.getSelectedRow(), 8).toString());
pst.setString(10, jTable1.getValueAt(jTable1.getSelectedRow(), 9).toString());
pst.setString(11, jTable1.getValueAt(jTable1.getSelectedRow(), 10).toString());
pst.setString(12, jTable1.getValueAt(jTable1.getSelectedRow(), 11).toString());
pst.setString(13, jTable1.getValueAt(jTable1.getSelectedRow(), 12).toString());
pst.setString(14, jTable1.getValueAt(jTable1.getSelectedRow(), 13).toString());
pst.setString(15, jTable1.getValueAt(jTable1.getSelectedRow(), 14).toString());
int adicionado = pst.executeUpdate();
if (adicionado > 0 ) {
JOptionPane.showMessageDialog(null, "Requisições adicionadas com sucesso!");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
E o segundo problema ta na parte de impressão, o meu ideal seria eu imprimir também só o que for selecionado na tabela, porém quando chamo a impressão(Configurei pra utilizar iReport) ele chama todo o banco de dados, fazendo assim ter uma perca gradual de tempo. Segue o código que hoje faz isso:
// gerando impressão
int confirma = JOptionPane.showConfirmDialog(null, “Confirma a impressão?”, “Atenção”, JOptionPane.YES_NO_OPTION);
if (confirma == JOptionPane.YES_OPTION);
{
//imprimindo relatório
try {
// usando a classe JasperPrint para preparar a impressao de um relatório
JasperPrint print = JasperFillManager.fillReport(“C:/reports/report4.jasper”, null, conexao);
// a linha abaixo exibe o relatório através da classe JasperViewer
JasperViewer.viewReport(print, false);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
}
Obrigado a todos desde já!