Problema com evento onCalcFields

02/05/2020

0

Pessoal, sou novo aqui no forum.
Estou tendo dois problemas com o evento onCalcFields:
1) Evento OnClacFields de um ClientDataSet. Criei uma Query pra ler uma tabela. Acrescentei um campo Calculate e criei um DataSetProvider, um ClientDataSet, tudo em RunTime . Atribui o DataSetProvider ao meu ClientDataSet, O ClienteDataSet em um DataSource . Até aí tudo bem. Criei uma procedure com a mesma assinatura do evento para fazer um calculo e atribui essa procedure ao envento. O problema é que o evento não é Acionado (executado). Será que tem ligação porque eu acrescentei esse campo calculado?
2)Evento OnClacFields de um DataSource.DataSet. Com a mesma Query, acrescentei o campo calculado igualzinho e a Query atribui diretamente ao DataSource, com a mesma procedure e tal. Dessa vez ele executa o evento só que ele está desconsiderando o primeiro registro da tabela. Os outros registros ele calcula direitinho menos o primeiro.

FDQuery.SQL.Clear;
FDQuery.SQL.Add(Select * From CentroCusto);
FDQuery.Active := True;.

vg_field := TFloatField.Create(nil); <=== AQUI EU ACRESCENTEI O CAMPO CALCULADO
WITH vg_field DO
BEGIN
Name := ''''SALDO'''';
FieldName := ''''SALDO'''';
FieldKind := fkCalculated;
ProviderFlags := [];
ReadOnly := False;
Calculated := True;
DataSet := FDQuery;
END;

FDSProvider.Name := ''''DSProviderCentroCusto'''';
FDSProvider.DataSet := FDQuery;

FCDSMaster.Name := ''''CDSCentroCusto'''';
FCDSMaster.ProviderName := ''''DSProviderCentroCusto'''';
FCDSMaster.SetProvider(FDSProvider);
FCDSMaster.Open;
DataSource.DataSet := FCDSMaster;

FCDSMaster.Active := True;
FCDSMaster.OnCalcFields := CalculoCampos;

Alguém sabe o que pode estar acontecendo?
Samyr Hissa

Samyr Hissa

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar