Ir para conteúdo
Fórum Script Brasil
  • 0

Carregando o Combo com dois valores no display member


MarceloSC

Pergunta

Olá a todos.

Gostaria de saber se tem possibildade de carregar um combo pelo dataSouce, com dois valores no displayMember???

Na classe eu tenho essa função:

'Carrega o combo de Fornecedor na Tela de COMPRAS

Public Function carregarComboFornecedor() As DataTable

SQL = "Select * from CLIENTE_FORNECEDOR where FLAGFORN = 'T' order by FANTASIA"

Dim OBJDA As New SqlClient.SqlDataAdapter(SQL, ObjBanco.objconexao)

OBJDS.Tables.Clear()

OBJDA.Fill(OBJDS)

Return OBJDS.Tables(0)

End Function

No formulário no LOAD:

comboFornecedor.DataSource = objFornecedor.carregarComboFornecedor

O ValueMember = idFornecedor

O DisplayMember = nomeFornecedor

Agradeço antecipadamente

Marcelo

Editado por MarceloSC
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Não entendi sua dúvida... Você tá atribuindo corretamente o DataSource e definindo o Value/Display Member. Se você quer mostrar duas informações tipo: "Nome Fornecedor - Cidade", você pode concatenar isso no SELECT.

SELECT idFornecedor, nomeFornecedor + ' - ' + cidade AS fornecedor FROM cliente_fornecedor WHERE flagforn = 'T' ORDER BY fantasia"

Assim, no DisplayMember você atribui o campo fornecedor.

Link para o comentário
Compartilhar em outros sites

  • 0
Não entendi sua dúvida... Você tá atribuindo corretamente o DataSource e definindo o Value/Display Member. Se você quer mostrar duas informações tipo: "Nome Fornecedor - Cidade", você pode concatenar isso no SELECT.

SELECT idFornecedor, nomeFornecedor + ' - ' + cidade AS fornecedor FROM cliente_fornecedor WHERE flagforn = 'T' ORDER BY fantasia"

Assim, no DisplayMember você atribui o campo fornecedor.

Obrigado Xistyle.

Funcionou em parte.

Esses são os campos e seus tipos:

ID INT (PK)

codigo INT

fantasia STRING

endereco STRING

É o seguinte:

* Quando ponho no select, campos do tipo STRING, funciona perfeitamente. E O combo é carregado com o dois valores.

SQL = "SELECT id, ENDERECO + ' - ' + FANTASIA AS nomeNoDisplayMember FROM cliente_fornecedor WHERE flagforn = 'T' ORDER BY fantasia"

ou

SQL = "SELECT ENDERECO + ' - ' + FANTASIA AS nomeNoDisplayMember FROM cliente_fornecedor WHERE flagforn = 'T' ORDER BY fantasia"

* Mas quando ponho no select campos do tipo INT, dá esse erro:

Falha ao converter o nvarchar valor 'NICOLA YAMADA BEL.' para o tipo de dados int.

SQL = "SELECT CODIGO + ' - ' + FANTASIA AS nomeNoDisplayMember FROM cliente_fornecedor WHERE flagforn = 'T' ORDER BY fantasia"

Se você poder me ajudar??

Abraço

Marcelo

Link para o comentário
Compartilhar em outros sites

  • 0

Você tem que fazer uma conversão quando vai concatenar campos de tipos diferentes. Nesse caso, tente desta forma:

"SELECT CONVERT(VARCHAR(4), codigo) + ' - ' + FANTASIA AS nomeNoDisplayMember FROM cliente_fornecedor WHERE flagforn = 'T' ORDER BY fantasia"

Link para o comentário
Compartilhar em outros sites

  • 0
Você tem que fazer uma conversão quando vai concatenar campos de tipos diferentes. Nesse caso, tente desta forma:

"SELECT CONVERT(VARCHAR(4), codigo) + ' - ' + FANTASIA AS nomeNoDisplayMember FROM cliente_fornecedor WHERE flagforn = 'T' ORDER BY fantasia"

MUUUUUUITO OBRIGADO, FUNCIONOU PERFEITAMENTE. VALEU MESMO!!!!

Vou te pedir só mais uma coisa.

Eu mudei as propriedades do COMBO

AutoCompleteMode: para SuggestAppend

AutoCompleteSouce: para ListItens

E na hora que digito um número o combo é carregado.

Mas quando digito STRING não carrega o combo.

Não teria como eu digitar tando número(que é o código da consulta SQL)

como letra que o campo fantasia da consulta SQL??????

Link para o comentário
Compartilhar em outros sites

  • 0

Então... infelizmente o AutoComplete não funciona como o LIKE do SQL. Ou seja, ele só vai te trazer os itens de acordo com o que você digitar, na ordem. Exemplo:

Se você tem os itens:

10 - Fornecedor 1

55 - Fornecedor 2

47 - Fornecedor 3

e digitar 3, nada irá aparecer, pois não existe item iniciado com 3 (apenas 1, 4 e 5).

Link para o comentário
Compartilhar em outros sites

  • 0
Então... infelizmente o AutoComplete não funciona como o LIKE do SQL. Ou seja, ele só vai te trazer os itens de acordo com o que você digitar, na ordem. Exemplo:

Se você tem os itens:

10 - Fornecedor 1

55 - Fornecedor 2

47 - Fornecedor 3

e digitar 3, nada irá aparecer, pois não existe item iniciado com 3 (apenas 1, 4 e 5).

Ta certo! De qualquer forma aprendi mais uma. Mais uma vez MUITO OBRIGADO

O que eu queria mesmo era consultar tando por código, quanto que por nome, no seu exemplo:

digitar 10 para trazer a linha : "10 - Fornecedor 1"

ou digitar Forne... para trazer a mesma consulta. Você não teria alguma outra forma, para fazer essa consulta ???

Link para o comentário
Compartilhar em outros sites

  • 0

Fácil não... você pode criar uma classe que herda um ComboBox e reescrever a rotina de AutoComplete e depois, ao invés de usar um ComboBox normal, usar o seu customizado. Mas dá muito trabalho :/

Dá uma pesquisada também no pai Google. As vezes tem alguma coisa que eu não manjo e não é tão complexo.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...