vincular os produtos ao cliente

Java

07/06/2011

oi de uma ajudinha
eu tenho uma classe de repositorio de cliente de produto de controle e itemControle  e movimentação
quero fazer com que quando selecionar o cliente no combobox ele mostre todos os produtos vinculados a ele na tabela. A logica eu tenho, só não estou sabendo como colocar pra funcionar no programar 

Lu

Lu

Curtidas 0

Respostas

Davi Costa

Davi Costa

07/06/2011

Manda mais detalhes da sua aplicação, se é desktop, se é web, quais framework usa (JSF,Struts....)?
Todo essa informação é importante para que possamos ajudá-la.


att Davi
GOSTEI 0
Lu

Lu

07/06/2011

desktop, eu quero fazer a vinculação, exemplo cliente com biscoito e arroz, quando eu abrir o framMovimentação eu selecionar o codigo do clieente no combobox  ele mostre na tabela só os produtos que ele sta vinculado,

GOSTEI 0
Lu

Lu

07/06/2011


GOSTEI 0
Lu

Lu

07/06/2011

quando abrir o formulario de Movimentação eu selecionar o codigo do cliente no combobox  ele mostre na tabela só os produtos que ele sta vinculado ex biscoito e arroz,

GOSTEI 0
Dyego Carmo

Dyego Carmo

07/06/2011

WEb ou Desktop ?

Swing ou JavaServer Faces ?

As diferencas são bem gritantes...

GOSTEI 0
Lu

Lu

07/06/2011

desktop e swing
GOSTEI 0
Lu

Lu

07/06/2011

qndo eu selecionar o cliente no combobox e na tabela selecionar os produtos desse clienete  e clicar no botao ele va para a tabela de movimentação so os produtos q eu vinculei a esse cliente

GOSTEI 0
Lu

Lu

07/06/2011

sto colocando isso no botao

private void botaoVincularActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:



        comboboxCliente.setSelectedItem(comboboxCliente.getSelectedItem());
        for (int i = 0; i < listaProdutos.size(); i++) {
            produtoVinculacao.getSelectedRow();
        }

GOSTEI 0
Davi Costa

Davi Costa

07/06/2011

Existem duas partes para ssa sua implementação uma é a parte swing e a outra é a de acesso a dados, o que especificamente vc precisa?


Att Davi
GOSTEI 0
Lu

Lu

07/06/2011

eu so qro fazer com q so traga pra tabela de movimentação os prdutos e o cliente selecionados no form d vinculação,
GOSTEI 0
Lu

Lu

07/06/2011

o q eu fiz ele sta trazendo tudo msm sem ter feito a vinculaçao, todos os produtos, e eu so qro q traga pra movimentação os q eu stiver selecionado
GOSTEI 0
Davi Costa

Davi Costa

07/06/2011

Está usando hibernate ou alguma outra implementação JPA? Ou usa jdbc mesmo, onde vc lista os produtos?
Quando vc executa esse método que vc postou ele retorna mesmo o selecionado?

Nessa chamada:

for (int i = 0; i < listaProdutos.size(); i++) {
            produtoVinculacao.getSelectedRow();
        }

Tenta recuperar esse Produto e dá um get em algum atributo dele.. algo seria mais ou menos assim:

for (int i = 0; i < listaProdutos.size(); i++) {
           Produto prod = (Produto) produtoVinculacao.getSelectedRow();
           System.out.println(prod.getQualquerAtributodeProduto());
        }

Uma vez que conseguir fazer isso, basta criar uma lista de produtos em memória e adicionar esse produtos selecionados, nessa parte do código que coloquei logo acima.

E quando for executar qualquer processo com a movimentação pega essa lista em memória.

Att Davi
GOSTEI 0
Lu

Lu

07/06/2011

ñ deu certo

acho q eu to errando tbm nesse codigo ai de moimentação

[cod]
public final class FormularioClienteProduto extends javax.swing.JFrame {

    ArrayList<Cliente> listaCliente = RepositorioCliente.obterInstancia().listarTodos();
    ArrayList<Produto> listaProdutos = RepositorioProduto.obterInstancia().listarTodos();
    ArrayList<ItemControle> lista = RepositorioItemControle.obterInstancia().listarTodos();
    Cliente cliente = new Cliente();

    /** Creates new form FormularioClienteProduto */
    public FormularioClienteProduto() {
        initComponents();
        Funcoes.centralizeFrame(this);
    }

    public void listarCliente() {
        DefaultComboBoxModel modelo = new DefaultComboBoxModel();
        for (int i = 0; i < listaCliente.size(); i++) {
            modelo.addElement(listaCliente.get(i).getCodigoCliente());
        }
        jComboBox1.setModel(modelo);
        listarMovimentacao();
         
    }
 
    public void listarMovimentacao() {
        DefaultTableModel model = new DefaultTableModel();
        model.setColumnIdentifiers(new String[]{"Produto", "Qtd Inicial", "Qtd Retirada", "Data", "Saldo"});
        for (int i = 0; i < listaProdutos.size(); i++) {
            model.addRow(new Object[]{
                        this.listaProdutos.get(i).getDescricaoProduto(),
                        this.listaProdutos.get(i).getQuantidade(),
                        this.listaProdutos.get(i).getQtdRetiradaProduto(),
                        this.listaProdutos.get(i).getDataEntrada(),
                        });

        }

        tabelaMovimentacao.setModel(model);
        TableColumnModel modeloDaColuna = tabelaMovimentacao.getColumnModel();

        modeloDaColuna.getColumn(0).setMinWidth(35);
        modeloDaColuna.getColumn(0).setMaxWidth(235);
        modeloDaColuna.getColumn(0).setResizable(true);
        modeloDaColuna.getColumn(1).setMinWidth(35);
        modeloDaColuna.getColumn(1).setMaxWidth(375);
    }
 [/cod]
GOSTEI 0
Lu

Lu

07/06/2011

ñ agora to usando sem banco, nem nada so jtable normal, java puro
GOSTEI 0
Davi Costa

Davi Costa

07/06/2011

O que vem em

produtoVinculacao.getSelectedRow();


Ele não tá funcionando não tá pegando o produto selecionado na tela?

Att Davi
GOSTEI 0
Lu

Lu

07/06/2011

ele ta pegando todos ñ so os selecionados
GOSTEI 0
Lu

Lu

07/06/2011

o problema é esse

GOSTEI 0
Lu

Lu

07/06/2011

dessa forma ai q stou usando no de movimentação pode sta errado???????

 ñ deu certo

acho q eu to errando tbm nesse codigo ai de moimentação

[cod]
public final class FormularioClienteProduto extends javax.swing.JFrame {

    ArrayList listaCliente = RepositorioCliente.obterInstancia().listarTodos();
    ArrayList listaProdutos = RepositorioProduto.obterInstancia().listarTodos();
    ArrayList lista = RepositorioItemControle.obterInstancia().listarTodos();
    Cliente cliente = new Cliente();

    /** Creates new form FormularioClienteProduto */
    public FormularioClienteProduto() {
        initComponents();
        Funcoes.centralizeFrame(this);
    }

    public void listarCliente() {
        DefaultComboBoxModel modelo = new DefaultComboBoxModel();
        for (int i = 0; i < listaCliente.size(); i++) {
            modelo.addElement(listaCliente.get(i).getCodigoCliente());
        }
        jComboBox1.setModel(modelo);
        listarMovimentacao();
         
    }
 
    public void listarMovimentacao() {
        DefaultTableModel model = new DefaultTableModel();
        model.setColumnIdentifiers(new String[]{"Produto", "Qtd Inicial", "Qtd Retirada", "Data", "Saldo"});
        for (int i = 0; i < listaProdutos.size(); i++) {
            model.addRow(new Object[]{
                        this.listaProdutos.get(i).getDescricaoProduto(),
                        this.listaProdutos.get(i).getQuantidade(),
                        this.listaProdutos.get(i).getQtdRetiradaProduto(),
                        this.listaProdutos.get(i).getDataEntrada(),
                        });

        }

        tabelaMovimentacao.setModel(model);
        TableColumnModel modeloDaColuna = tabelaMovimentacao.getColumnModel();

        modeloDaColuna.getColumn(0).setMinWidth(35);
        modeloDaColuna.getColumn(0).setMaxWidth(235);
        modeloDaColuna.getColumn(0).setResizable(true);
        modeloDaColuna.getColumn(1).setMinWidth(35);
        modeloDaColuna.getColumn(1).setMaxWidth(375);
    }
GOSTEI 0
Lu

Lu

07/06/2011



eu stou colocando assim so q ñ sta indo so os selecionados, sta indo todos os produtos pra tabela de movimentação

  private void botaoVincularActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
        comboboxCliente.setSelectedItem(comboboxCliente.getSelectedItem());
        for (int i = 0; i < listaProdutos.size(); i++) {
            int prod =  produtoVinculacao.getSelectedRow();
            System.out.println(prod);
        }

GOSTEI 0
Davi Costa

Davi Costa

07/06/2011

O que esse  código imprime na tela:





Pq se imprimir somente um registro , o selecionado na tela, basta seguir a estratégia que expliquei anteriormente, cria uma lista com escopo de classe em memória e pega esse produto selecionado e coloca nela, assim como todos os outros que porventura o usuário selecionar. Daí vc faz com essa lista o que quiser.

att Davi
GOSTEI 0
Lu

Lu

07/06/2011

eu qro fazer com q ele pegue o codigo do cliente e o produto q eu liguei a ele, tipo se eu tiver cadastrado arroz e farinha quando eu abrir a tela de vinculação la mostrará os 2 produtos ai eu selecionar só o arroz e clicar em vincular ele vincule, então quando for pra movimentação e eu selecionar no comb o cliente e clicar em listar ele só liste os produtos q ele esta ligado.
é exatamente isso q eu ñ to conseguindo fazer, mostrar na movimentação só os produtos pertencente aquele cliente, os produtos q eu vinculei

 
GOSTEI 0
Lu

Lu

07/06/2011

ou melhor  dizendo sem esse botão lista, quando eu selecionasse o cliente ele mostrasse so os produtos q eu vinculei a ele e os produtos q ñ estiverem vinculados ficara com o codigo do cliente vazio
GOSTEI 0
POSTAR