#datetime #crystal-reports #crystal-reports-2008
#datetime #crystal-отчеты #crystal-отчеты-2008
Вопрос:
в моей базе данных время, за которое кто-то работал, хранится в определенном количестве минут. В моем отчете я перечисляю эти минуты в формате ЧЧ: мм. Я делаю это, используя следующую функцию:
Function (numberVar numberToBeConverted)
local TimeVar resu<
local StringVar hh := ToText((Truncate( numberToBeConverted ) / 60), "0");
local StringVar mm := ToText((Truncate( Abs(numberToBeConverted) ) mod 60), "00");
local StringVar ss := '00';
Local StringVar t:= hh ":" mm ":" ss;
if istime (t)
then result := TimeValue (tijd)
else result := TimeValue ("23:59:59");
result
Я хотел бы сохранить тип данных (время), но хотел бы иметь возможность указывать продолжительность дольше 24 часов (т. Е. рабочую неделю).
возможно ли это?
Спасибо
Ответ №1:
К сожалению, формат времени CR не поддерживает то, что вы хотите сделать. Вместо этого попробуйте мою пользовательскую функцию elapsedTime().
** редактировать **
Если поле возвращает количество секунд, вы могли бы использовать его формулу отображения строки. Щелкните правой кнопкой мыши поле, выберите «Форматировать поле …», затем вкладку «Общие», затем кнопку справа от текста «Отображать строку:»; введите следующий текст:
//CurrentFieldValue assumed to be in seconds
ElapsedTime(CurrentFieldValue)
При таком подходе вы сможете получить желаемое форматирование и по-прежнему сможете использовать само поле в вычислениях.
Комментарии:
1. Я придумал нечто подобное. Однако я хотел бы сохранить тип данных time, чтобы иметь возможность выполнять вычисления с его помощью. Я думаю, мне придется смириться с тем, что у меня будет много формул отображения (которые вызывают вашу функцию истекшего времени)