Duvidas em mostrar pesquisa de vendas

Galera e quando eu incluo o por exemplo um produto ele fica listado na tabela ,ai eu incluo outro,lista tmb ,após a finalização,para começar outra transação, eu queria que ele atualizasse e não mostrasse os produtos anteriores na tela.

alguém teria alguma ideia de como eu posso fazer?exemplos outros fórum, por que iria me ajudar muito

[quote=matheus145]Galera e quando eu incluo o por exemplo um produto ele fica listado na tabela ,ai eu incluo outro,lista tmb ,após a finalização,para começar outra transação, eu queria que ele atualizasse e não mostrasse os produtos anteriores na tela.

alguém teria alguma ideia de como eu posso fazer?exemplos outros fórum, por que iria me ajudar muito[/quote]

Além do português péssimo (não entendi quase nada da primeira frase), você não diz se seu aplicativo é desktop ou web.

[quote=ViniGodoy][quote=matheus145]Galera e quando eu incluo o por exemplo um produto ele fica listado na tabela ,ai eu incluo outro,lista tmb ,após a finalização,para começar outra transação, eu queria que ele atualizasse e não mostrasse os produtos anteriores na tela.

alguém teria alguma ideia de como eu posso fazer?exemplos outros fórum, por que iria me ajudar muito[/quote]

Além do português péssimo (não entendi quase nada da primeira frase), você não diz se seu aplicativo é desktop ou web.[/quote]pa

Desculpa.

Vamos la.

Bom,eu tenho uma tela de vendas,quando adiciono os produtos, vai acrescentando na minha tabela ,pois quando eu finalizo e abro outra tela de venda e adiciono outro produto,
ele mostra o item anterior da venda, que não deveria estar lá.Gostaria de saber como posso tratar esta pesquisa ,para que na próxima venda não mostra os itens anteriores.
O aplicativo e para desktop.

alguém teria alguma ideia de como eu posso fazer?exemplos outros fórum, por que iria me ajudar muito.

Obrigado.

Você está salvando os dados em algum bd? Se estiver verifique se sua busca não está fazendo algo tipo select * from [sua tabela].
Se for isso basta fazer um filtro, cria um campo com código de venda, sendo que os produtos comprados na mesma tela entram com o mesmo codigo de venda no banco, assim, na hora da pesquisa, basta você selecionar os produtos com mesmo código de venda.

Obrigado mesmo por estar me ajudando.

Tem como você me mostra no código ,um exemplo simples de como fazer esse filtro?,pq não entendi muito bem.

Cara, seria algo na sua instrução SQL.

Algo como:


SELECT * FROM [SUA TABELA]
WHERE COD_VENDA = [VALOR DO CODIGO]

Mas lendo de novo agora, não sei se é isso que você quer…
Mas sei lá, não sei se entendi bem o que você quer fazer…

Faz o seguinte, posta seu código aqui, com a parte que insere, a parte que retorna a tabela e a tela de inserir produtos, ai vejo se consigo entender melhor

Bom aqui vai os codigos.

Aqui e meu dao

  public void adiciona(Venda venda) throws SQLException {
        //prepara a conexão


        String sql;
        sql = "insert into venda(descricao,quantidade,valor)"
                + "values(?,?,?)";

        try (PreparedStatement stmt = conexao.prepareStatement(sql)) {

            stmt.setString(1, venda.getDescricao());
            stmt.setString(2, venda.getQuantidade());
            stmt.setString(3, venda.getValor());

            // Executa a inserção do cliente              
            stmt.execute();
            

Aqui meu botão de inserir

   ControleVenda   controle = new  ControleVenda();

            String descricao = this.jTDescricao.getText();
            String quantidade = this.jTQuantidade.getText();
            String valor = this.jTValorUnitario.getText();
 try {
        controle.adicionar(descricao, quantidade, valor);
    } catch (SQLException ex) {
        Logger.getLogger(janelaVendas.class.getName()).log(Level.SEVERE, null, ex);
    }
 

Minha list array

public List<Venda> getLista(String nome) throws SQLException {

        String sql = "select * from venda  WHERE venda.descricao like ? ";

        List<Venda> minhaLista;
        try (PreparedStatement stmt = this.conexao.prepareStatement(sql)) {
            stmt.setString(1, nome);
            try (ResultSet rs = stmt.executeQuery()) {
                minhaLista = new ArrayList<Venda>();
                while (rs.next()) {
                    Venda c1 = new Venda();

                    c1.setCodvenda(Integer.valueOf(rs.getString("codvenda")));
                    c1.setDescricao(rs.getString("descricao"));
                    c1.setQuantidade(rs.getString("quantidade"));
                    c1.setValor(rs.getString("valor"));

                    minhaLista.add(c1);


                }
                rs.close();
                stmt.close();
                return minhaLista;

            }
        }
    }

Minha pesquisa

private void mostraPesquisa(){

      
    while(tmCliente.getRowCount()>0){
         tmCliente.removeRow(0);
     }
      if(contatos.isEmpty()){
   
      }else{
          String[] linha = new String[]{null,null};
                for (int i = 0; i <contatos.size(); i++) {
         tmCliente.addRow(linha);
         tmCliente.setValueAt(contatos.get(i).getCodvenda(), i, 0);
         tmCliente.setValueAt(contatos.get(i).getDescricao(), i, 1);
         tmCliente.setValueAt(contatos.get(i).getQuantidade(), i, 2);
         tmCliente.setValueAt(contatos.get(i).getValor(), i, 3);
         
         
         
                }   
            }
        }   
    

Agora esta e a única parte que falta para min finalizar minha venda.

Preciso muito que a pesquisa mostre apenas os produtos que vou adicionado a cada nova venda

Não sei como fazer isso

Obrigado.Estou precisando muito.

Vamos lá.

Eu vi duas coisas pontuais aqui no seu código.

Primeiro no seu metodo getLista.
Tirando o fato de você ter criado dois try aninhados e não ter colocado nenhum catch, tenho 2 perguntas. Pq esse método não está dentro do seu DAO? E qual é a utilidade desse filtro que você criou? Onde você vai definir ele?

Agora seu metodo mostraPesquisa(). Primeiro, ele não deveria chamar o método getLista? O que significa aquele bloco dentro do else? Não entendi o que você quis fazer ali.

Esse seu método mostraPesquisa() é meio inútil no seu código, pq ele aparentemente não faz nada. Tenta concertar o seu getLista, tira aquele filtro e pensa em um select no qual só os últimos dados que entraram no banco. Você insere sempre o mesmo número de linhas por vez que roda o código?
Uma solução pode ser uma variavel static que conta os registros do banco, assim você poderia buscar dela pra frente, mas tem que saber quando incrementar ela.

Tenta pensar um pouquinho nessa busca no banco, tem várias formas de fazer o que você quer…

vamos la.

-Os catch tem e pq não mostrei no código acima.

-Pq esse método não está dentro do seu DAO? E qual é a utilidade desse filtro que você criou? Onde você vai definir ele?
E pq o tmCliente e de uma tabela,por isso não pode estar no DAO, os valores que tem dentro e para inserir na tabela,
quando pegar no array.
O método mostrar pesquisa não e inútil,pq o nome já diz ele mostra a pesquisa.

-Tenta consertar o seu getLista, tira aquele filtro e pensa em um select no qual só os últimos dados que entraram no banco. Você insere sempre o mesmo número de linhas por vez que roda o código?

O problema e em como irei fazer isso né.Pq não consegui encontrar um meio de fazer, e estou ate agora pesquisando. E ultima parte q falta aqui para min.

Obrigado por estar me ajudando.