| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Округление Duration
			 
			
			Всем добрый день! 
		
		
		
		
		
		
		
		
			На форме Итого время (длительность как разница двух Time) считается до миллисекунд. Во-первых, не помещается, во-вторых, не надо так точно. Например, 3 часы 31 минуты 17 секунды 647 миллисекунды Какие есть способы округлить? Кроме как простенько поделить и вычленить? Спасибо! Последний раз редактировалось mira; 08.10.2019 в 18:49. Причина: сделала простенько  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			на контроле формат настроить пробовали?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: mira (1). | |
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Заведите переменную Duration или сделайте функцию которая возвращает Duration  
		
		
		
		
		
		
			ROUND(DT2-DT1,1000) Заодно перед вычислением проверите что переменные инициализированы, а то бывает неприятно когда страница не откроется из за того что переменные в формуле не заданы. 
				__________________ 
		
		
		
		
	Want to believe...  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: mira (1). | |
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Sancho, говорили мне, что как-то в свойствах можно настроить формат Duration. 
		
		
		
		
		
		
		
	Но как - посмотрели, не ясно.  
		 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			DA_NEAL, да, спасибо! Отлично получилось. 
		
		
		
		
		
		
		
	Точность вынесла в настройки и пока 10000.  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Заказчик захотел формат "чч:мм" 
		
		
		
		
		
		
		
	Причем, из данных регистрируемого времени происходит не только отображение в формах Нава, но и в отчетах 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 у меня почему-то стал целые минуты. Хотя, я готова была еще и здесь отрезать секунды.  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			"Time Begin":= DT2TIME(ROUNDDATETIME(CURRENTDATETIME(), 1000*60))
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: mira (1). | |
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Sancho, спасибо!  
		
		
		
		
		
		
		
	Заменила свой код вашим. Время округляется как надо.  | 
| 
	
 | 
| 
	
	 | 
	
			 
			Похожие темы
		 | 
	||||
| Тема | Ответов | |||
| Округление НДС при продаже в валюте | 1 | |||
| Округление себестоимости по товарным остаткам | 3 | |||
| Округление себестоимости | 2 | |||
| Округление в Счет-Фактуре | 4 | |||
| Округление, НДС | 15 | |||
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
		
  |