Дополнительные
библиотеки функций пользователя Crystal Reports
Доступны три библиотеки функций пользователя Crystal Reports
(CRUFL), которые относятся специально к LANDesk Service Desk. Все
три библиотеки CRUFL предлагают расширенную функциональность для
редактора формул в компоненте Crystal Reports, который можно
использовать при создании собственных отчетов.
Перед тем, как начать использовать библиотеки CRUFL, вам
необходимо зарегистрировать каждую клиентскую рабочую станцию, на
которой нужно создавать отчеты.
Для регистрации библиотек CRUFL:
На сервере, на котором установлено приложение отчетов
Service Desk, скопируйте следующие файлы в локальную папку: Reg_CRUFL.bat,
CRUFLCategory.dll,
CRUFL_BusinessHours.dll, CRUFL_ConvertToUTC.dll,
CRUFL_IncidentDuration.dll, GACutil.exe и RegAsm.exe
Если вы
используете 64-разрядную операционную систему, тогда вам нужно
заменить файл RegAsm.exe на 64-разрядную версию
RegAsm.exe, которая находится в
папкеC:\Windows\Microsoft.Net\Framework64\v2.0.50727.
Запустите файл Reg_CRUFL.bat.
Библиотеки DLL CRUFL будут зарегистрированы.
Далее представлены
дополнительные функции, которые доступы в разделе списка функций
редактора формул - Дополнительные функции\Visual Basic
UFL:
BusinessHoursBusinessHoursUflBusinessHoursFromNow
(Guid ответа, строка подключения, рабочие часы для добавления,
oracle)
Возврат в точку, в которой x - это рабочие часы в
соответствии с выбранным календарем уровня ответа.
Где:
Guid ответа = Поле в базе данных, содержащее
уровень ответа.
Например, {im_incident.im_response_level_guid}.
Строка подключения = Строка подключения к базе
данных.
Рабочие часы для добавления = Количество
рабочих часов до наступления текущего времени (x - в описании
относится к данной библиотеке CRUFL).
Oracle = Это база данных Oracle; для баз
данных Oracle это значение устанавливается в "true".
IncidentDurationIncidentDurationGetDuration
(Guid ответа, Guid события, строка подключения, время открытия,
oracle, время завершения)
Выполняется вычисление прошедшего рабочего времени между двумя
полями события - дата и время, за исключением времени закрытия
события или останова времени уровня обслуживания.
Где:
Guid ответа = Поле в базе данных, содержащее
уровень ответа.
Например, {im_incident.im_response_level_guid}.
Guid события = Поле в базе данных, содержащее
событие.
Например, {im_incident.pm_guid}
Строка подключения = Строка подключения к базе
данных.
Времяоткрытия = Поле с датой и
временем открытия.
Например, дата регистрации события –
{pm_process.pm_creation_date}
Oracle = Это база данных Oracle; для баз
данных Oracle это значение устанавливается в "true".
Время завершения = Поле с датой и временем
завершения.
Например, дата закрытия события –
{pm_process.pm_creation_date}
Также можно использовать кавычки - “ ” для предотвращения указания
времени закрытия события - в этом случае будет использоваться
окончательное время закрытия события или время остановки
таймера.
IncidentDurationIncidentDurationGetOffset()
Эта функция возвращает строку, содержащую разницу между временем
UTC и локальным временем компьютера. Это значение может быть
положительным или отрицательным. Например, в случае местонахождения
в Сан-Франциско, значение будет равно "-8", а в случае Токио -
"9".
Поскольку возвращаемое значение является строкой, вам
потребуется преобразовать его в число, используя для этого
стандартную функцию Crystal Reports - ToNumber().