Jtable com data--- resolvido

3 respostas
leandrovrb

Ola pessoal....
Estou desenvolvendo uma aplicacao aqui,e tenho um banco de dados chamado TBORDEM, onde nele tenho todos registros de codigo(ORD_ID),data do cadastro(ORD_DATA),data do pagamento(ORD_PAG) e valor(ORD_VALOR).
Entao faço um sql para me retornar todos os registros e retorna sem problema algum,mas me retorna a data como aaaa/mm/dd.
Entao utilizo o SimpleDateFormat data, e ele converte legal minhas datas sem erros.Ate aee blz
Masss existe um campo no BD que se chama ORD_PAG, que é a data que foi pago o serviço,se nao foi pago nao tem a data do pagamento!
Entao na hra de converter para dd/mm/aaaa ele nao da erro mas tb nao lista no jtable a linha que nao foi paga so me traz os registros que foram pagos.(ou seja o campo que tem data ele lista a linha completa,os que nao tem nada dentro do campo ord_pag nao é mostrado no jtable)
Esta abaixo o SQL que fiz aq: oq tenho q fazer para me trazer todos registros?tanto pagos qto nao pagos!

jtAbaPesq.getColumnModel().getColumn(0).setPreferredWidth(7);
        jtAbaPesq.getColumnModel().getColumn(1).setPreferredWidth(14);
        jtAbaPesq.getColumnModel().getColumn(2).setPreferredWidth(20);
        jtAbaPesq.getColumnModel().getColumn(3).setPreferredWidth(20);
        jtAbaPesq.getColumnModel().getColumn(4).setPreferredWidth(10);
        jtAbaPesq.getColumnModel().getColumn(5).setPreferredWidth(14);
        jtAbaPesq.getColumnModel().getColumn(6).setPreferredWidth(40);
        DefaultTableModel modelo = (DefaultTableModel) jtAbaPesq.getModel();
        modelo.setNumRows(0);
         try {
             con_OrdemServico.executeSQL("select * from TBORDEM order by tbordem.ord_ID descending");
             SimpleDateFormat data = new SimpleDateFormat("dd/MM/yyyy");
            
           while (con_OrdemServico.resultset.next())
            modelo.addRow(new Object[]{con_OrdemServico.resultset.getString("ORD_ID"), data.format(con_OrdemServico.resultset.getDate("ORD_DATA")), con_OrdemServico.resultset.getString("ORD_CLI"), con_OrdemServico.resultset.getString("ORD_FUN"), con_OrdemServico.resultset.getString("ORD_VALOR"),[b] data.format(con_OrdemServico.resultset.getDate("ORD_PAG"))[/b], con_OrdemServico.resultset.getString("ORD_DESC")});
            con_OrdemServico.resultset.first(); 
        }

3 Respostas

Onixx2

opa cara, tava dando uma olhada nos forum e vi sua msg. Cara eu acho que você deveria colocar um if perguntando se a string não é igual a “”(ou seja vazio) se for não pessa para converter, se não, vc manda para conversão…

ps.: seria interessante você cria o seu object[]][] antes e só então você passa como argumento para o metodo addRow do seu modelo.

igor_jua

Cara…não sei se o que vou falar aqui é besteira…mas quando se busca um dado no banco, caso o campo esteja vazio obviamente não irá te retornar nada!
Tendo isso em vista vc poderia setar inicialmente o valor da variavel que vc esta recebendo este valor do banco como “null”. Com isso vc saberá se deve ou não efetuar a conversão desta.

PS: Psvtec, fiquei com uma dúvida em relação ao seu post!
Por que seria interessante ele criar o object[] [] antes, já que no java a passagem nos parâmetros é feita por cópia e não por referencia.

//ate onde eu sei, tanto faz ter:
YYY o = new YYY("alguma coisa");
xxx.(o);
//como vc ter
xxx.(new YYY("alguma coisa"));

Mas não sei…eu aprendi desta maneira…mas posso esta errado!
Fiquei curioso pra saber o pq…Posta aí a resposta, ok?
abraço!!!

leandrovrb

Igor e Pcsv_Tec…como que eu faço passando por args?
mas consegui a solucao aq,coloquei uma variavel recebendo o valor do BD e verifquei colocando .lenght e convertir somente se achou a data
assim

if(dataRecebe.length() < 8)
{…}//nao converte a data
else
{…}//converte a data

Criado 17 de julho de 2009
Ultima resposta 19 de jul. de 2009
Respostas 3
Participantes 3