Сообщение от Дмитрий 22
|
При формировании вижу следующее: если "Число прибытий" 1 то время нахождения правильно, а если более 2 х посещений КТ то абсолютно неправильно, т. е. не суммируется
|
вы в отчет добавили просто поле [Dataset1."REAL_CONT", которое означает просто продолжительность нахождения в контрольной точке, а вам надо все эти продолжительности просуммировать примерно так
вопрос:
Как просуммировать общее время и вывести его в итог
Код:
|
var
CurrCont: TDateTime = 0;
Str: String;
procedure SumCont(Cont: String);
begin
if Length(Cont) > 8 then CurrCont := CurrCont + StrToDateTime(Copy(Cont, Length(Cont) - 7, 8)) + StrToFloat(Copy(Cont, 0, Length(Cont) - 9))
else CurrCont := CurrCont + StrToDateTime(Copy(Cont, Length(Cont) - 7, 8));
end;
function GetSumCont(): String;
begin
if CurrCont >= 1 then
begin
Str := DateTimeToStr(CurrCont);
Str := IntToStr(Trunc(CurrCont)) + 'сут. ' + Copy(Str, Length(Str) - 7, 8);
//Str := IntToStr(Trunc(CurrCont) * 24 + StrToInt(Copy(Str, Length(Str) - 7, 2))) + Copy(Str, Length(Str) - 5, 6);
end
else
begin
Str := DateTimeToStr(CurrCont);
Str := Copy(Str, Length(Str) - 7, 8);
end;
result := Str;
end; |
во вкладку код в редакторе шаблонов вставляете этот текст
в MasterData2 вызываете первую функцию, в нее параметром передаете время для суммирования
в вашем случае как-то так [SumCont(<Dataset1."REAL_CONT">)], ее можно засунуть в невидимую ячейку или в любую ячейку в MasterData2
а затем, там где идет итог по времени вставить ячейку с текстом [GetSumCont()]