Тема: Отчеты
Показать сообщение отдельно
Старый 11.05.2011, 11:29    | »»» |  #23
storm
Опытный пользователь
 
Аватар для storm
 
Регистрация: 22.12.2010
Сообщений: 2,121
storm is on a distinguished road
Отправить сообщение для storm с помощью Skype™
По умолчанию

Сообщение от Дмитрий 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()]

г. Челябинск
Ахмедьянов Алексей Адлерович

Последний раз редактировалось storm; 11.05.2011 в 11:33.
storm вне форума   Ответить с цитированием