Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Colasso

com DBLookupComboBox

Recommended Posts

Ola gente,

 

Bom eu estou construindo um programa para a facul, que seria um controle de pizzaria, quando fiz o banco de dados, vi que a melhor forma de fazer (o cadastro de endereço) seria colocar tabelas separadas para cidade/bairo/logradouro pois ao fazer a consulta seria mais facil e nao teria problemas com dados duplicados(Ex: Cidade: Curitiba / Curtiba).

Ate ai tudo bem , o meu problema é na hora de colocar no cadastro de cliente(ou em qualquer outro que precise de endereço )

como eu faço pra colocar um dblookupcombobox e tipo assim , ao escolher o primeiro que seria a cidade , fazer com que o proximo (bairro) só colocasse os bairros daquela determinada cidade.

 

Estava falando co meu professor ele me deu ideia de colocar filtro , mas nao deu muito certo pq só funciona da ordem inverssa, seu fosse começar do cadastro primeiro de bairro e depois cidade.

Ex:

 

DM.IBTABCIDADE.FILTERED := FALSE;
DM.IBTABCIDADE.FILTER   := 'IDCIDADE = ' DM.IBTABBAIRROIDCIDADE.ASstring;
DM.IBTABCIDADE.FILTERED := TRUE;

Bom se alguem puder ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Rodrigo,

 

Nesse caso voce vai ter um pouco de trabalho toda vez que for colocar um endereço em algum cadastro.

 

Mas vamos a resolução do seu problema...

 

Primeiro você vai colocar uma Query ou Uma Tabela não sei de que forma voce esta trabalhando.

 

Digamos que seja uma TTable.

 

1ª Table voce coloca a CIDADE

2ª Table voce coloca o Bairro sendo essa Table como MASTERSOUCER a CIDADE ligando a chave primaria da tabela 1 a chave de ligaçao da tabela BAIRRO

3ª Table voce coloca o LOGRADOURO sendo essa Table como MASTERSOUCER a BAIRRO ligando a chave primaria da tabela 2 a chave de ligaçao da tabela LOGRADOURO

 

Sendo assim quando selecionar a CIDADE todos bairros ligado a essa cidade irao ser filtrados automaticamente, e quando voce selecionar o BAIRRO vai

acontecer a mesma coisa que aconteceu com os bairros vao ser filtrados.

 

Bem amigo Rodrigo espero que tenha lhe ajudado.

 

Um Abraço a todos do iMaster

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, use a mesa do DATA MODULE, só a hr q você for concatenar elas em uma query você faz isso.

olha eu posso fazer o ex para você

mande a estrutura das tabelas e eu faço para você certo.

 

ou me add no msn

 

bruno_borba81@hotmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Bruno, bom faz tempo que eu não entrava aqui no forum, mas infelizmente estou com a mesma dúvida,

 

 

Bom vamos lá...

 

 

Eu fiz tudo isso já

 

1º Passo: Tenho uma tabela Estado (uma a mais que antes).

2º Passo: Criei um datasource - com o dataset sendo a tabela estado.

3º Passo: Na tabela Cidade coloquei a propriedade MasterSource o datasource criado

 

Só que quando eu vou no masterfields e escolho as foreing key's o delphi é fechado sozinho, sabe sé é erro do banco ou algo que estou fazendo errado.

 

Eu não consegui falar com você no msn... http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala ferinha, beleza???

 

Bom, vamos por partes como diria o Jack( http://forum.imasters.com.br/public/style_emoticons/default/yay.gif )...

 

Vamos pensar no seguinte caso:

 

Em seu banco de dados, seja lá qual for, você tem a tabela de Cidade com os campos:

Código, Cidade, Estado....

 

Partindo dessa visão, coloque 2 querys em seu formulário...

 

Pegando os Estados...

Para pegar os estados coloque na propriedade SQL da query (qryEstados) o seguinte:

 

Select Distinct Estado From Cidade

 

Pegando as Cidades com Base no Estado....

Para pegar as cidades com base no estado selecionado faça o seguinte:

 

Coloque em seu formulário um DBLookupCombobox e faça as devidas ligações com a qryEstados para listar os estados...

 

Feito isso, vamos preparar a qryCidades para que ela Filtre com base nos estados...

 

Coloque na propriedade SQL o seguinte:

 

Select * From Cidade Where Estado Like :PEstado

 

Configure o parâmetro PEstado como ptInput e do tipo ftString...

 

Não estranhe o fato de usar o Like, porque????...

 

Seguinte, ao Usar o Like você pode tanto filtrar uma gama de registros como também pode trazer todos, ai vai de sua necessidade, estou aqui procurando fazer algo que possa ser genérico...

 

Bom, sem mais enrolações, vamos fazer a coisa funcionar...

 

No DBLookupComboBox do estado, no Evento OnCloseUp faça o Seguinte:

No caso estou usando ADO...

 

qryCidade.Close;
qryCidade.Parameters.ParamByName('PEstado').Value := qryEstado.FieldByName('Estado').AsString;
qryCidade.Open;

 

Feito Isso, no OnCloseUp do DBLookupComboBox da cidade, faça:

 

try
  DBLookupEstado.KeyValue := qryCidade.FieldByName('Estado').AsString;
except
end;

Bom, acho que é isso, fiz meio de cabeça portanto é possível que existam erros...

 

Uma dica, adapte ao seu uso e pesquise bastante...

 

Caso não de certo ou esteja com dúvidas volte a postar...

 

Abraço! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw Hugo eu vou tentar e dai eu posto o resultao.

Há uma coisam, meu banco é assim:

 

Tenho uma Tabela Estado com : IdEstado, Descricao, UF.

uma Tabela Cidade com: IdCidade, Descricao, IDEstado(FK);

Bairro : IdBairro, descricao, idCidade(FK);

Logradouro : IDLogradouro, descricao, idBairro(FK);

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.