Дополнительные библиотеки функций пользователя Crystal Reports

Доступны три библиотеки функций пользователя Crystal Reports (CRUFL), которые относятся специально к LANDesk Service Desk. Все три библиотеки CRUFL предлагают расширенную функциональность для редактора формул в компоненте Crystal Reports, который можно использовать при создании собственных отчетов.

Перед тем, как начать использовать библиотеки CRUFL, вам необходимо зарегистрировать каждую клиентскую рабочую станцию, на которой нужно создавать отчеты.

Для регистрации библиотек CRUFL:
  1. На сервере, на котором установлено приложение отчетов 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.

  1. Запустите файл Reg_CRUFL.bat.
    Библиотеки DLL CRUFL будут зарегистрированы.

Далее представлены дополнительные функции, которые доступы в разделе списка функций редактора формул - Дополнительные функции\Visual Basic UFL:

BusinessHoursBusinessHoursUflBusinessHoursFromNow (Guid ответа, строка подключения, рабочие часы для добавления, oracle)

Возврат в точку, в которой x - это рабочие часы в соответствии с выбранным календарем уровня ответа.

Где:

ConvertToUTCConvertToUTCToLocal (ToText({pm_process.pm_creation_date}))

Содержит две функции, примеры которых представлены далее.

Для преобразования локальной даты/времени (pm_creation_date) в формат UTC используйте команду:

DateTime(ConvertToUTCConvertToUTCToLocal (ToText({pm_process.pm_creation_date})))

Для преобразования даты/времени UTC (pm_creation_date) в локальный формат используйте команду:

DateTime(ConvertToUTCConvertToUTCToUTC (ToText({pm_process.pm_creation_date})))

IncidentDurationIncidentDurationGetDuration (Guid ответа, Guid события, строка подключения, время открытия, oracle, время завершения)

Выполняется вычисление прошедшего рабочего времени между двумя полями события - дата и время, за исключением времени закрытия события или останова времени уровня обслуживания.

Где:

IncidentDurationIncidentDurationGetOffset()

Эта функция возвращает строку, содержащую разницу между временем UTC и локальным временем компьютера. Это значение может быть положительным или отрицательным. Например, в случае местонахождения в Сан-Франциско, значение будет равно "-8", а в случае Токио - "9".

Поскольку возвращаемое значение является строкой, вам потребуется преобразовать его в число, используя для этого стандартную функцию Crystal Reports - ToNumber().