Evento correto para fazer pesquisa na grid?
31/08/2004
0
Bom dia meus amigos do portal, tenho certeza que esta minha dúvida será sanada neste portal, vamos lá.
Tenho uma tela de digitacao de pedido, na grid o usuario digita o codigo do produto, quantidade e valor unitario da venda, temho que fazer a pesquisa no cadastro de produto para trazer a descrição, qual é o evento correto para fazer a pesquisa. Segue abaixo um ex. da minha pesquisa.
Esta pesquisa está no evento oncalcfield, na revista 54 do clubedelphi diz que é um suicidio fazer esta pesquisa, só que não mostra qual é o evento corrento, então resolvi recorrer ao porta.
Ex da minha pesquisa na grid
cdsDetalheVrTotal.AsCurrency := (cdsDetalhePIT_QTDEVENDIDA.AsCurrency *
(cdsDetalhePIT_VALORUNITARIO.AsCurrency - (cdsDetalhePIT_VALORUNITARIO.AsCurrency * cdsDetalhePIT_PERCENTUALDESCONTO.AsCurrency / 100)));
with TSQLQuery.Create(nil) do
begin
try
SQLConnection := FrmPrincipalSGCAdm.SQLConnection1;
Sql.Add(´SELECT PROD_CODIGO, PROD_DESCRICAOPRODUTO, PROD_QTDEESTOQUEFISICO FROM RODUTO´);
Sql.Add(´WHERE EMP_CODIGO =´ +IntToStr(FrmPrincipalSGCAdm.CodEmpresa));
Sql.Add(´AND PROD_CODIGO = ´+IntToStr(cdsDetalhePROD_CODIGO.AsInteger));
Open;
cdsDetalheDescProd.AsString := Fields[1].AsString;
cdsDetalheQtdeFisica.AsCurrency := Fields[2].AsCurrency;
finally
Free;
end;
end;
Utilizo delphi 7 banco firebird 1.5 e componente dbExpress
´A palavra de Deus não é um peso, mas um componente da nossa jornada´
Obrigado pela atenção
Placido
Posts
01/09/2004
Aroldo Zanela
Eu não sei qual seria a sugestão do autor, na verdade não encontrei esta referência no número 54 da CD. Eu normalmente não utilizo edição direta em Grids, reservando-as apenas para exibição. No caso, eu utilizo alguns componentes de edição na parte superior do formulário (dbEdits, dbLkps, etc) e botões de ação e na parte inferior, uma gird para visualização.
01/09/2004
Placido
Mas a referência está na página 44 pergunta número 13. do artigo
Soluções para acesso a BD, dicas sobre dbExpress.
Grato
01/09/2004
Aroldo Zanela
Mas naquele exemplo, ele já sugere substituir a criação do campo de Calculated para InternalCalc, e testar se o estado do DataSet é dsInternalCalc mantendo o tratamento no evento OnCalcFields.
Clique aqui para fazer login e interagir na Comunidade :)