AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.10.2019, 18:18   #1  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
Округление Duration
Всем добрый день!

На форме Итого время (длительность как разница двух Time) считается до миллисекунд.
Во-первых, не помещается, во-вторых, не надо так точно.

Например,
3 часы 31 минуты 17 секунды 647 миллисекунды

Какие есть способы округлить? Кроме как простенько поделить и вычленить?

Спасибо!

Последний раз редактировалось mira; 08.10.2019 в 18:49. Причина: сделала простенько
Старый 08.10.2019, 23:33   #2  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
на контроле формат настроить пробовали?
За это сообщение автора поблагодарили: mira (1).
Старый 09.10.2019, 09:12   #3  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Заведите переменную Duration или сделайте функцию которая возвращает Duration
ROUND(DT2-DT1,1000)
Заодно перед вычислением проверите что переменные инициализированы, а то бывает неприятно когда страница не откроется из за того что переменные в формуле не заданы.
__________________
Want to believe...
За это сообщение автора поблагодарили: mira (1).
Старый 09.10.2019, 10:31   #4  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
Sancho, говорили мне, что как-то в свойствах можно настроить формат Duration.
Но как - посмотрели, не ясно.
Старый 09.10.2019, 10:51   #5  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
DA_NEAL, да, спасибо! Отлично получилось.
Точность вынесла в настройки и пока 10000.
Старый 14.10.2019, 12:08   #6  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
Заказчик захотел формат "чч:мм"
Причем, из данных регистрируемого времени происходит не только отображение в формах Нава, но и в отчетах sql.
Чтобы у нас с разработчиком sql время было одинаково и\ или ему не пришлось округлять, сделала так :

в полях таблицы вот так
Time Begin - OnValidate()
g_txt_Time1 :=FORMAT(TIME, 5, '<Hours24>.<Minutes,2>');
IF EVALUATE(g_tm_Time1, g_txt_Time1) THEN
"Time Begin" := g_tm_Time1

IF ("Time Begin" <> 0T) AND ("Time End" <> 0T) THEN BEGIN
Duration := "Time End" - "Time Begin";

И Duration у меня почему-то стал целые минуты. Хотя, я готова была еще и здесь отрезать секунды.
Старый 14.10.2019, 13:07   #7  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
"Time Begin":= DT2TIME(ROUNDDATETIME(CURRENTDATETIME(), 1000*60))
За это сообщение автора поблагодарили: mira (1).
Старый 14.10.2019, 15:25   #8  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
Sancho, спасибо!

Заменила свой код вашим. Время округляется как надо.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Округление НДС при продаже в валюте Case NAV: Функционал 1 23.01.2012 11:43
Округление себестоимости по товарным остаткам Vist NAV: Функционал 3 25.04.2011 17:50
Округление себестоимости logger_imported NAV: Функционал 2 31.08.2007 11:56
Округление в Счет-Фактуре Camilla NAV: Функционал 4 21.02.2007 10:13
Округление, НДС Konstantin I NAV: Функционал 15 25.04.2006 15:20
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:40.