DBCombobox usando LiveBinding

27/11/2013

0

Estou apanhando para fazer um DBCombobox usando o LiveBinding.

Eu gostaria de fazer com que exibisse por exemplo:
Abacaxi
Banana
Melancia
e salvasse
A
B
M

Alguem sabe fazer isso no XE5?
Tiago Soares

Tiago Soares

Responder

Posts

27/11/2013

Vander Ferraz

Você pode usar um componente Combobox simples ao invés de um DBCombobox.

Eu uso o Visual Livebindings para fazer. Basta Clicar com o Botão direito do Mouse em qualquer componente e escolher Bind Visually.

Se você colocar os dois componentes no seu form e abrir Visual Livebindings vai ver que o Combobox tem varias propriedades para se fazer binding e o DBCombobox não tem.

Responder

27/11/2013

Tiago Soares

Você pode usar um componente Combobox simples ao invés de um DBCombobox.

Eu uso o Visual Livebindings para fazer. Basta Clicar com o Botão direito do Mouse em qualquer componente e escolher Bind Visually.

Se você colocar os dois componentes no seu form e abrir Visual Livebindings vai ver que o Combobox tem varias propriedades para se fazer binding e o DBCombobox não tem.



Eu estou acostumado com o Delphi 2007, eu vi que no XE5 realmente não tem o DBComboox, mas eu não consegui entender qual em qual propriedade do meu ComboBox eu ligo com meu Field.
E como eu irei fazer ele mostrar uma coisa e exibir outra.
Responder

27/11/2013

Vander Ferraz

Voltemos ao básico

Cenário:
Eu tenho uma aplicação com uma tabela Produto, onde eu tenho relacionamento do campo CodCateg com uma tabela Categoria, OK.
Eu quero exibir no combobox a Descriçao da categoria e salvar na tabela Produto o Codigo da Categoria, ou seja, meu campo Lookup é o CodCateg nas duas tabelas.

Vamos ao Visual LiveBindings.

As propriedades que nos interessa no Combobox são:

SelectedValue
Item.Text
Item.LookupData

No visual Livebindigs basta arrastar a propriedade do Combobox para o Campo correspondente na tabela.

Vamos a prática.

A propriedade SelectedValue eu vou arrastar para o campo CodCateg da minha tabela produtos. É o campo onde os valores serão gravados.
A propriedade Item.Text vou arrastar para o campo Descricao da minha tabela de Categorias. É o valor que será exibido no meu Combobox.
A propriedade Item.LookupData vou arrastar para o campo Código da tabela Categorias. É o campo que faz minha correspondência de valores.

Existem formas mais complexas e avançadas de fazer isso. mas considero essa a forma mais simples e básica para você iniciar.

Estou a disposição para outras informaçoes.




Responder

27/11/2013

Tiago Soares

Essa parte eu entendi.

Mas no meu caso o valor que eu ire salvar no banco não está em uma tabela, esse valor é estático e não é integer é String.

Exemplo:
Eu tenho um cadastro de visitantes onde tenho um campo tipo de visitante onde eu salvo:
PRE
VIS
FUN
DOM
MOT
PIS
JAR
MON
TER
EMP
ENT
FAR
OUT
E exibo respectivamente:
Prestador de Serviços
Visitante
Funcionário
Doméstica
Motoboy
Piscineiro
Jardineiro
Montador
Terceirizado
Empreiteiro
Entregador Pizza
Farmácia
Outros


Minha duvida é como implementar isso no LiveBinding.
Responder

27/11/2013

Tiago Soares

E outra duvida.
Tenho um campo UF onde armazeno a sigla do estado.
Estou tentenado ligar diretamente no text mas não está funcionando.
Responder

27/11/2013

Vander Ferraz

Você não pode transformar isso em tabela?
Responder

27/11/2013

Tiago Soares

Na verdade ja tenho essa aplicação rodando em Delphi 2007, eu estou tentando fazer um modulo Moblie.
Pra isso teria que alterar todo meu projeto win 32.
Responder

27/11/2013

Vander Ferraz

Em mobile o xe5 trabalha com dois bancos, o principal é sqlite.

Mas se você conseguir criar essa lista em XML você pode usar um clientdataset Ai fica facil usar o livebindings como descrevi acima

A programação Mobile é Simples.
Responder

27/11/2013

Vander Ferraz

Aqui na Devmedia tem um artigo ótimo sobre clientdataset fazendo do jeito que eu disse.

[url]https://www.devmedia.com.br/clientdataset-gerando-tabela-temporaria-em-memoria/3193[/url]

Se você achar que esse jeito pode resolver podemos tentar isso na pratica.
Responder

27/06/2014

Rafael Mota

Preencha a propriedade items do Combobox com sua lista, e faça a ligação da propriedade SelectedValue para o campo desejado. Gosto de preencher a lista só depois que faço a ligação, pois as vezes, no momento da ligação ele limpa a propriedade items.

Abraços.
Responder

28/06/2014

Eduardo Silva.

Você pode formatar o texto utilizando a Propriedade CustomParse conforme a imagem abaixo:

[img:descricao=LivingBinding CustomParse]http://arquivo.devmedia.com.br/forum/imagem/19599-20140628-232900.png[/img]

Ou da forma tradicional utilizando o evento OnGetText.

sds

Eduardo Belo
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar