|
Расчет времени в отчете скд
| ☑ |
0
IT_PROGRAMMIST
12.02.13
✎
19:32
|
Добрый вечер. пл. 8.2.16.368.
Есть отчет(скд), который показывает сколько отработал станок. Время в регистре,которое использует отчет ,хранится в секундах. Для отображения времени в часах с минутами сделал вычисляемое поле, которые использует функцию общего модуля. Отчет работает отлично. Только есть один большой минус- долго. Как можно сократить его выполнение без расчета времени в запросе?
функция общего модуля:
Часы = Цел(Время/3600);
Минуты = Цел((Время-Часы*3600)/60);
Возврат ""+Часы+" ч."+Минуты+" мин.";
|
|
1
regniws
12.02.13
✎
19:36
|
(0) а отчет точно работает медленно из-за расчета времени? И чем не нравится вычисления делать
|
|
2
regniws
12.02.13
✎
19:38
|
+1 вычисления в запросе
|
|
3
IT_PROGRAMMIST
12.02.13
✎
19:38
|
сделал замер времени: с использованием вычисляемого поля отчет строится приблизительно 30 секунд. Но если выводить время просто в секундах(т.е без использования вычисляемого поля) - 5 секунд.
|
|
4
regniws
12.02.13
✎
19:39
|
(3) а вычислить время в запросе, в чем проблема, зачем гнать процедуру? сколько строк в результате работы?
|
|
5
IT_PROGRAMMIST
12.02.13
✎
19:40
|
при вычислении в запросе много чего надо будет проверять. К примеру: Цел в запросе нет, значит надо будет делать так:
Выразить(Время - 0.5 как Число(10,0) )
|
|
6
IT_PROGRAMMIST
12.02.13
✎
19:40
|
при этом проверять, что число <0 и т.д
|
|
7
regniws
12.02.13
✎
19:41
|
а время с долями секунд что ли?
|
|
8
regniws
12.02.13
✎
19:42
|
и время бывает отрицательным??
|
|
9
IT_PROGRAMMIST
12.02.13
✎
19:44
|
(7) в смысле с долями секунд. Я в отчете перевожу секунды в часы с минутами. При этом может быть 1540 часов 40 минут.
(8) я в (5) написал
|
|
10
Classic
12.02.13
✎
19:52
|
ВЫБРАТЬ
ВЫБОР
КОГДА &Ч - ВЫРАЗИТЬ(&Ч КАК ЧИСЛО(2,0)) < 0
ТОГДА ВЫРАЗИТЬ(&Ч КАК ЧИСЛО(2,0)) - 1
ИНАЧЕ ВЫРАЗИТЬ(&Ч КАК ЧИСЛО(2,0))
КОНЕЦ
Аналог функции Цел для положительных чисел
|
|
11
Classic
12.02.13
✎
19:53
|
(5)
При Время = 0 у тебя будет замечательное значение
|
|