powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Время с помощью formula field в Crystal Report
5 сообщений из 5, страница 1 из 1
Время с помощью formula field в Crystal Report
    #34037809
Micle77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно вычислить продолжительность времени с помощью formula field в Crystal Report, то есть сложить секунды и преобразовать в формат времени для вывода в отчет. Делаю следующим образом:
Код: plaintext
1.
TimeValue (DateAdd ("s", {Data.Seconds}, CDateTime ("00:00:00")))
Но здесь кроется ошибка. Если время переваливает за сутки, то есть за 24 часа, то теряются сутки (00:35:59), а нужно получить продолжительность в следующем виде 48:35:59 .
Как можно сделать такае с помощью formula field ?
...
Рейтинг: 0 / 0
Время с помощью formula field в Crystal Report
    #34037850
ShadowCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обязательно использовать эту формулу? можно ведь сделать все вручную деля на 60 получаем минуты. Остаток будет кол-во секунд. и т.д. а потом просто собрать по частям.
...
Рейтинг: 0 / 0
Время с помощью formula field в Crystal Report
    #34053725
Micle77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
iHour := Hour(time);
ToText(iHour);
Я получаю целое число, а в отчет выводится 3,00 .
Как избавиться от нулей после запятой в результате ?
...
Рейтинг: 0 / 0
Время с помощью formula field в Crystal Report
    #34059027
Micle77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Победил.
Может кому пригодится:
Код: plaintext
1.
2.
3.
4.
Local TimeVar timeNonInterval;
timeNonInterval := TimeValue (DateAdd ("s", Sum ({@NoneInterval}), CDateTime ("00:00:00")));
local NumberVar iHour;
iHour := Sum ({@NoneInterval}) /  3600 ;
ToText(Int(iHour), '#####') + ":" + ToText(timeNonInterval, 'mm:ss'); 
...
Рейтинг: 0 / 0
Время с помощью formula field в Crystal Report
    #34059430
iNatty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно сделать еще так (CR10).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
//Вычисление суммы секунд по секции отчета (мне нужен весь, группу не указываю) - некое поле "nSum"
sum(DateDiff ("s", {SECURITY_LOG.TIME_BEGIN_EVENT}, SECURITY_LOG.TIME_END_EVENT}))
//Вычисление часов (не округление, а отбрасывание дробной части, это важно)
truncate(Sum ({@nSum}) /  60  /  60 )
// А это уже минуты - прямо функция
Minute (TimeSerial( 0 ,  0 , Sum ({@nSum})))
//Остались секунды - тож формула
Second (TimeSerial( 0 ,  0 , Sum ({@nSum})))

Затем - объединение этих полей в текстовом объекте - <Поле> часов, <Поле> минут, <Поле> секунд. Разделение по полям обусловлено необходимостью еще в нескольких местах отчета использовать их порознь. Если это не нужно - то можно вычислять в одной формуле.
И еще один момент - мне нужны были именно часы - не важно, если число больше 24. Если нужны дни - то, разумеется, нужны еще действия.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Время с помощью formula field в Crystal Report
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]