Fórum invalid class typecast delphi #580212

17/04/2017

0

estou com o seguinte erro invalid class typecast delphi, deu este erro pq preciso usar o (DataSet: TDataSet) dentro do (Sender: TObject) com a seguinte linha de codigo
qryVendasOnlineCalcFields(Sender as TDataSet);

este e o codigo :

procedure TfrmVendasOnlinePDV.btnPesquisarClick(Sender: TObject);
var

SOMA, I, TOTAL: Double;
DataIni,DataFim: TDateTime;

begin

fgActivityDialog1.Message := 'Pesquisando ...';
fgActivityDialog1.Show;

with qryVendasOnline do
begin
Close();
Params.ParamByName('pNumEmpresa').Value := ComboBox1.ItemIndex + 1;
Params.ParamByName('dtInicial').AsDateTime := StrToDate(edtDataInicio.Text);
Params.ParamByName('dtFinal').AsDateTime := StrToDate(edtDataFinal.Text);
Open();
end;
with qryVendasOnline do
begin
Close();
Params.ParamByName('pNumEmpresa').Value := ComboBox1.ItemIndex + 1;
Params.ParamByName('dtInicial').AsDateTime := StrToDate(edtDataInicio.Text);
Params.ParamByName('dtFinal').AsDateTime := StrToDate(edtDataFinal.Text);
Open();
end;
begin
SOMA := 0;
with qryVendasOnline do
begin

qryVendasOnline.DisableControls;
qryVendasOnline.First;

while not qryVendasOnline.Eof do
begin
SOMA := (SOMA + qryVendasOnline.FieldByName('sum').AsFloat);
qryVendasOnline.Next;
end;

qryVendasOnline.EnableControls;
lbCalc.Text := FloatToStr(SOMA);// Format('%00.0n',);
lbCalc.Text := FormatFloat('#####0.00,',StrToFloat(lbCalc.Text));

end;
end;
with qryVendasOnline do
begin

DataIni := Params.ParamByName('dtInicial').AsDateTime;
DataFim := Params.ParamByName('dtFinal').AsDateTime;

I := Trunc(DataFim - DataIni);
LBDIAS.Text := (FloatToStr(I));

end;
begin

TOTAL := SOMA / I;
lbTotal.Text := FloatToStr(TOTAL);
lbTotal.Text := FormatFloat('#####0.00,',StrToFloat(lbTotal.Text));

qryVendasOnlineCalcFields(Sender as TDataSet);

qryVendasOnlineMediaDia.DataSet.FieldByName('MediaDia').AsFloat :=
qryVendasOnlinesum.DataSet.FieldByName('sum').AsFloat / StrToFloat(LBDIAS.Text);

end;
fgActivityDialog1.Hide;
end;
Tulio Santana

Tulio Santana

Responder

Posts

17/04/2017

Jones Granatyr

Opa! Seria interessante apontar em qual linha está o problema. Pelo que percebi é essa

qryVendasOnlineCalcFields(Sender as TDataSet);


Você não conseguirá fazer essa conversão porque o Sender é um TObject (classe base do Delphi) e você está tentando transformar ela em um TDataSet. Terá que usar outra maneira para fazer esse código (se puder explicar melhor seu objetivo fica mais fácil para ajudar a como resolver)
Responder

Gostei + 0

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

Aceitar