jTable, Ajuda

4 respostas
C

é o seguinte, vou explicar tudo certinho, o serviço funciona assim, alguns pessoas da empresa recebem por semana, e na hora de puxar o relatorio mensal, automaticamente vem nomes de algumas pessoas duplicadas, o q estava pensando,

criei um jTable com a query que puxei do banco, e outra jTable q no caso pegaria os dados da primeira jTable, e tentaria eliminar os nomes repetidos, pegandos somente o nome e a coluna do salario e fazer um ++;

soh q tentei e nao conseguir, enviar o jTable para outra jTable.

jtTabelaQuery = new JTable((TableModel) montarTableQuery(query));

jtTabelaRelatorio = new JTable((TableModel)montarTableRelatorio(jtTabelaQuery));

as vezes eh meu codigo q possa estar errado, se alguem pode me ajudar.

4 Respostas

ViniGodoy

Sem colocar a implementação dos métodos, fica dificílimo te ajudar.

C
public DefaultTableModel montarTableQuery(String query){

String databanco = “”;

Vector coluna = new Vector();

coluna.add(Nome);

coluna.add(Valor Liquido);

coluna.add(Valor Bruto);

Vector linha = new Vector();

try{

Conexao c = new Conexao();

ResultSet rs = c.getQuery(query);

while(rs.next()){

Vector tupla = new Vector();

//Pega o campo Nome

tupla.add(rs.getString(1));

//Pega o campo Valor Liquido

tupla.add(rs.getString(3));

//Pega o campo Valor Bruto

tupla.add(rs.getString(4));

linha.add(tupla);

}

}catch(Exception ex){

System.out.println("ERRO: " + ex);			

}

return new DefaultTableModel(linha,coluna);

}

essa eh uma table, tah funcionando certinha.

public DefaultTableModel montarTableRelatorio(JTable jtTabelaQuery){

Vector coluna = new Vector();

coluna.add(Nome);

coluna.add(Valor Liquido);

coluna.add(Valor Bruto);

*** aki desenvolvendo a parte para analisar as repetiçoes de nomes

Vector tupla = new Vector();

//Pega o campo Nome

tupla.add(jtTabelaQuery.getValueAt(i, 0));

//Pega o campo Valor Liquido

tupla.add(jtTabelaQuery.getValueAt(i, 2));

//Pega o campo Valor Bruto

tupla.add(jtTabelaQuery.getValueAt(i, 3));

linha.add(tupla);

}

return new DefaultTableModel(linha,coluna);

}

não sei se eh isso q deseja, mas eu naum entendo sabe.

fredsilva.sistemas

Tenta eliminar a duplicação de dados na própria consulta.
Vê a sua claúsula WHERE do SELECT como está. As vezes pode ser isso!
T+

C

minha query esta correta

SELECT
cad_func.cad_func_nome,
cad_func.cad_func_cpf,
cad_func.cad_func_pis,
cad_relat.cad_relat_dt,
cad_relat.cad_relat_val_brut,
cad_relat.cad_relat_val_liqui
FROM
cad_func
Inner Join cad_relat ON cad_func.cad_func_id = cad_relat.cad_func_id
WHERE
cad_relat.cad_relat_dt BETWEEN ‘2009-07-01’ AND ‘2009-07-31’
ORDER BY
cad_func.cad_func_nome ASC

esta selecionando o periodo do mes, soh como expliquei lah em cima
alguns funcionarios, recebem por semana, entao vai ter 2 vezes ou mais o nome dele na query.

Criado 4 de agosto de 2009
Ultima resposta 5 de ago. de 2009
Respostas 4
Participantes 3