Comparar uma coluna do dbgrid.

Delphi

11/09/2012

Preciso comparar uma coluna de um dbgrid pois a coluna que vou comparar não pode ter o mesmo valor (nesse caso o codigo do produto ).
Segue o código:
procedure TDM.ibtblEntProdutoENTPROD_ID_PRODValidate(Sender: TField);
var i : Integer ;
begin
if ( DM.ibtblEstoque.Locate( ''COD_EST'',DM.ibtblEntProdutoENTPROD_ID_PROD.Value,[loCaseInsensitive] ))THEN
with FrmEntrada.dbgrd1.DataSource.DataSet do
begin

First;
for i:= 0 to FrmEntrada.dbgrd1.FieldCount -1 do
begin

if (FrmEntrada.dbgrd1.Fields[0].text = FrmEntrada.dbedtENTPROD_ID_PROD.Text ) then
begin
ShowMessage(''Produto já Cadastrado'');
FrmEntrada.dbgrd1.SelectedRows.Delete;
Next;
end
else
ShowMessage('' '');
end

end
else
ShowMessage(''Código do Produto não encontrado! Contate o Administrador do Sistema!'');
FrmEntrada.dbgrd1.SelectedRows.Delete;
end;
Quero fazer a checagem e se o código do Produto já tiver sido utilizado ele passa uma mensagem para o usuário q o produto já foi cadastrado e exclui a linha do dbgrid. a parte do produto não encontrado está ok !

Para isso utilizei o evento onvalidate!

se não entenderam é só postar ai!

aguardo retorno!
Evandro Sanz

Evandro Sanz

Curtidas 0

Respostas

William

William

11/09/2012

Colega para falar a verdade seu código está meio confuso!

Pelo o que eu entendi se achar o produto exclui a linha do DBGrid e senão achar também exclui, é isso mesmo?

Notei q vc montou um loop para comparar Field por Field do DBGrid em busca de um valor, o próprio locate já não filtrou para vc?

Obs.: Por gentileza quando vc postar qualquer tipo de código utilize a TAG
!
GOSTEI 0
Evandro Sanz

Evandro Sanz

11/09/2012

Ok valeu pela dica do code nunca tinha postado aqui antes!

O locate é utilizado quando o produto não está cadastrado no sistema ainda(ps: O sistema possui uma tela de cadastro de produtos).Ele está funcionando perfeitamente.

Sim quando ele não acha o código ele da a mensagem "Código do Produto não encontrado! Contate o Administrador do Sistema!"
e exclui a linha do grid isso está correto!

Já o loop que é o problema eu preciso comparar field a filed para ver se não tem nenhum código do produto em duplicidade pois o mesmo não pode acontecer por isso utilizei o evento onvalidate pois na hora que for validar eu quero q o mesmo de a mensagem q esse produto ja foi digitado nessa entrada e exclua a linha!

obs: são duas condições uma se o produto não está cadastrado que é o locate e outra de quando o produto ja foi inserido no grid q é o loop.




GOSTEI 0
POSTAR