DBCombobox usando LiveBinding

Delphi

27/11/2013

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

Curtidas 1

Respostas

Vander Ferraz

Vander Ferraz

27/11/2013

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.

GOSTEI 0
Tiago Soares

Tiago Soares

27/11/2013

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.
GOSTEI 0
Vander Ferraz

Vander Ferraz

27/11/2013

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.




GOSTEI 0
Tiago Soares

Tiago Soares

27/11/2013

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.
GOSTEI 0
Tiago Soares

Tiago Soares

27/11/2013

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

Vander Ferraz

27/11/2013

Você não pode transformar isso em tabela?
GOSTEI 0
Tiago Soares

Tiago Soares

27/11/2013

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.
GOSTEI 0
Vander Ferraz

Vander Ferraz

27/11/2013

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.
GOSTEI 0
Vander Ferraz

Vander Ferraz

27/11/2013

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.
GOSTEI 0
Rafael Mota

Rafael Mota

27/11/2013

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.
GOSTEI 0
Eduardo Silva.

Eduardo Silva.

27/11/2013

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
GOSTEI 0
POSTAR