Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Foxpro/Clipper/Dbase > Разница Datetime-ов в отчете


Автор: krondemonic 18.3.2008, 01:39
Здравствуйте,  возникла такая проблема..
Мне надо в отчете в переменную вывести разницу двух полей типа DateTime
Наример
12.05.2006 01:50:00 - 12.05.2006 01:20:00 должно возвратить 30 

в консоли вот это работает
Код

?(DATETIME(2002,12,03,15,50,00) - DATETIME(2002,12,03,15,20,00))/60


я пишу такой код в построителе выражение в отчете,но при запуске отчета вылетает ошибка
To few arguments...

Подскажите пожалуйста
что здесь нехватает...
Код

?(DATETIME(Переменная1) - DATETIME(Переменная2))/60





Автор: Данкинг 18.3.2008, 02:02
Too few arguments (Error 1229)

A function call contains less than the required number of arguments.

 smile 

Автор: SaschaL 18.3.2008, 06:25
Помести переменная1 и переменная2 в кавычки или опостраф, например так:
Цитата

?(DateTime('переменная1')- DateTime('переменная2'))


возможно поможет. 

Автор: Cashey 18.3.2008, 11:17
Ф-ция DateTime требует аргументы. Переменая - это один аргумент, надо количество аргументов довести до требуемого функцией. Или же заложить параметры в переменную и использовать макроподстановку в параметре
Код
a1='2002,12,03,15,50,00'
a2='2002,12,03,15,20,00'
?(DATETIME(&a1)-DATETIME(&a2))/60

Автор: krondemonic 18.3.2008, 21:29
Это все понятно, но как это все правильно записать в Expression Builder отчета
У меня есть поля -  begin_wokr и end_work, их значения берутся из таблицы которая уже значениями

Разве можно в построителе выражениии писать свои переменые?

Код

(DATETIME(end_work)-DATETIME(begin_wokr))/60  

где begin_wokr, end_work - значения которы берутся из таблицы
мне надо именно в созданном отчете вывести разницу этих дат в минутах
(тоесть например, будет выведен отчет сколько проработал кажный сотрудник)

Автор: krondemonic 18.3.2008, 23:31
Спасибо всем, сам додумался...

Автор: Cashey 19.3.2008, 15:40
Цитата(krondemonic @  18.3.2008,  22:29 Найти цитируемый пост)
У меня есть поля -  begin_wokr и end_work

все зависит от того какой тип у этих полей, если тип dateteme, то использование ф-ции DATETIME вообще не требуется.


Цитата(krondemonic @  18.3.2008,  22:29 Найти цитируемый пост)
Разве можно в построителе выражениии писать свои переменые?

можно, если они объявлены PUBLIC

Цитата(krondemonic @  19.3.2008,  00:31 Найти цитируемый пост)
Спасибо всем, сам додумался... 

молодец smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)