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.
#Código
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
Aplique um duplo clique no ClientDataset e no seu editor de campos clique com o botão direito do mouse e selecione a opção New Field.
Na tela de configuração do campo, defina sua propriedade Name como VirtTotalGeral, sua propriedade Type como Time e em Field Type, selecione a opção Aggregate e em seguida clique no botão OK para criar o campo.
O campo agregado aparece numa área destacada em virtude de não haver uma ocorrência deste para cada registro como no campo calculado convencional, este ocorre uma vez só para todo o ClientDataSet.
Prosseguindo com a sua configuração, selecione o campo VirtTotalGeral no editor de campos e modifique a sua propriedade Active para True a fim de habilitarmos o seu uso. na propriedade Expression defina o seguinte comando SUM(Campo), podemos notar bastante semelhança com o comando referente na linguagem sql, justamente para agregar valores calculados ou não, numa amostragem a partir de um campo.
Atenciosamente ErileySegue o código inteiro!
#Código
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;







