Array
(
)

Evento correto para fazer pesquisa na grid?

Placido
   - 31 ago 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
   - 01 set 2004

Nenhuma dica?


Aroldo Zanela
   - 01 set 2004

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.


Placido
   - 01 set 2004

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


Aroldo Zanela
   - 01 set 2004

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.