vincular os produtos ao cliente
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
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
Curtidas 0
Respostas
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
Todo essa informação é importante para que possamos ajudá-la.
att Davi
GOSTEI 0
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
07/06/2011
GOSTEI 0
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
07/06/2011
WEb ou Desktop ?
Swing ou JavaServer Faces ?
As diferencas são bem gritantes...
Swing ou JavaServer Faces ?
As diferencas são bem gritantes...
GOSTEI 0
Lu
07/06/2011
desktop e swing
GOSTEI 0
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
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();
}
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
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
Att Davi
GOSTEI 0
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
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
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
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
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]
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
07/06/2011
ñ agora to usando sem banco, nem nada so jtable normal, java puro
GOSTEI 0
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
produtoVinculacao.getSelectedRow();
Ele não tá funcionando não tá pegando o produto selecionado na tela?
Att Davi
GOSTEI 0
Lu
07/06/2011
ele ta pegando todos ñ so os selecionados
GOSTEI 0
Lu
07/06/2011
o problema é esse
GOSTEI 0
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
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
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
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
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
é 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
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