Como fazer DBLookupListBox selecionar somente 1 registro?

Delphi

08/06/2010

Estou testando o uso do componente DBLookListBox para selecionar uma tarifa e incluí-la numa venda.

Este componente fica na tela da venda e ao selecionar a tarifa ele a inclui na venda.

O problema é que quando se visualiza os valores na tela o DBLookupListBox seleciona todas as tarifas que possuem o mesmo valor (mesmo sendo de regiões diferentes).

Como fazer para que o DBLookupListBox selecione somente a tarifa de uma determinada região, mesmo que esta tarifa possua valores idênticos as demais?

Tabelas:
Venda
- Tarifa

Tarifa
- Regiao
- Valor

DBLookupListBox:
DataField: Tarifa
DataSource: dsVenda
KeyField: Valor
ListField: Regiao
ListFieldIndex: 0
ListSource: dsTarifa

Agradeço a quem puder me auxiliar.
Aristeu Sales

Aristeu Sales

Curtidas 0

Respostas

Wilson Junior

Wilson Junior

08/06/2010

O conteúdo do campo que está como KeyField é que será gravado no campo DataField. No seu caso ao invés de colocar o KeyField como Valor, deveria ser o índice da tabela Tarifa (ID), pois syuponho que o mesmo deve ter até uma FK na tabela Venda.

Espero ter colaborado.
GOSTEI 0
Aristeu Sales

Aristeu Sales

08/06/2010

Boa tarde Wilson. Agradeço pela resposta, mas ainda não é o que procuro.   A tabela de tarifas não está ligada diretamente a tabela de vendas. Estou mantendo-a separada para o caso de, se haver alguma alteração na tarifa, não interferir no valor das já cadastradas para a venda.   Se fosse pelo ID da tabela ele seria único e não haveria problemas, mas o que ocorre é que existem valores iguais e o DBLookupListBox não os diferencia, selecionando todas as ocorrências destes valores iguais.   Da forma que coloquei, ao clicar no tabela de Taxas ele insere a taxa selecionada na venda e já calcula o valor final. O problema é mais estético, pois se existem tarifas iguais o DBLookupList seleciona todos estes valores.
GOSTEI 0
POSTAR