Evento correto para fazer pesquisa na grid?

31/08/2004

Bom dia!
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

Respostas

01/09/2004

Placido

Nenhuma dica?


Responder Citar

01/09/2004

Aroldo Zanela

Colega,

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.


Responder Citar

01/09/2004

Placido

Aroldo obrigado pela atenção.
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


Responder Citar

01/09/2004

Aroldo Zanela

Colega,

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.


Responder Citar