Fórum Totalizar valor da variável #385151
30/08/2010
0
Como posso obter o total do valor armazenado?
Ex.
Tenho a tabela e cada item recebe um valor. Ao final, todo valor deverá ser somado.
var
hr1 : TDateTime;
hr2 : TDateTime;
hrt : TDateTime;
begin
hr1 := sdsTabela.FieldByName('INI_PAUSA').AsDateTime;
hr2 := sdsTabela.FieldByName('FIM_PAUSA').AsDateTime;
hrt := hr2-hr1;
(frxRelatorio.FindObject('Total_Pausa') as TfrxMemoView).Text := TimeToStr(hrt);
end;
Até aí tudo bem!
E pra colocar um total do hrt?
Vejo que preciso de mais uma variável, certo?
Ex. visualizado!
COD INICIO FIM TOTAL
01 13:00 13:40 00:40
02 14:00 14:30 00:30
TOTAL GERAL 01:10
Elton Ésqui
Curtir tópico
+ 0Posts
30/08/2010
Eriley Barbosa
Gostei + 0
30/08/2010
Elton Ésqui
Eu tentei por osmose, mas quando adiciono esse campo os outros campos somem.
Gostei + 0
30/08/2010
Eriley Barbosa
Gostei + 0
30/08/2010
Eriley Barbosa
Gostei + 0
30/08/2010
Elton Ésqui
Detalhe:
Field Type, selecione a opção Aggregate
O type Aggregate não existe quando seleciona TIME.
Gostei + 0
30/08/2010
Eriley Barbosa
Gostei + 0
30/08/2010
Leonardo Bertolini
Bom pelo que entendi o mais simples possível seria criar uma variável global (la em cima no Private) e ir somando a variavel hrt nela.
ValTotal := ValTotal + hrt;
Depois exibir ValTotal no relatório.
abraços
twiiter.com/leobertolini
Gostei + 0
31/08/2010
Eriley Barbosa
Gostei + 0
06/09/2010
Elton Ésqui
Segue o código inteiro!
procedure TDMForm.frxRelatorioBeforePrint(Sender: TfrxReportComponent);
var
hr1 : TDateTime;
hr2 : TDateTime;
hrt : TDateTime;
ini_oper : TDateTime;
fim_oper : TDateTime;
tot_oper : TDateTime;
hr_trab : TDateTime;
tmp_requ : TDateTime;
begin
if (FormADQ652.cbxOperador.Checked) then
begin
(frxRelatorio.FindObject('GroupHeader1') as TfrxGroupHeader).StartNewPage := True;
end;
begin
hr1 := sdsOperad.FieldByName('INI_PAUSA').AsDateTime;
hr2 := sdsOperad.FieldByName('FIM_PAUSA').AsDateTime;
hrt := hr2-hr1;
(frxRelatorio.FindObject('Total_Pausa') as TfrxMemoView).Text := TimeToStr(hrt);
end;
begin
tmp_requ := sdsOperad.FieldByName('TEMPO_TURNO').AsDateTime;
ini_oper := sdsOperad.FieldByName('INI_OPER').AsDateTime;
fim_oper := sdsOperad.FieldByName('FIM_OPER').AsDateTime;
tot_oper := fim_oper - ini_oper;
hr_trab := tot_oper - hrt;
if hr_trab < tmp_requ then
begin
(frxRelatorio.FindObject('hr_trab') as TfrxMemoView).Text := TimeToStr(hr_trab);
(frxRelatorio.FindObject('hr_trab') as TfrxMemoView).Font.Color := clRed;
end
else
begin
(frxRelatorio.FindObject('hr_trab') as TfrxMemoView).Text := TimeToStr(hr_trab);
(frxRelatorio.FindObject('hr_trab') as TfrxMemoView).Font.Color := clBlack;
end;
end;
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)