Определение значения поля в шаблоне PRD

После добавления элемента в шаблон PRD необходимо определить значение его поля.

Текстовое поле, числовое поле

Значением элементов "Текстовое поле" и "Числовое поле" могут быть:

Определить значение элементов "Текстовое поле" и "Числовое поле"

Чтобы определить значение элемента, выполните следующие действия:

  1. Добавьте элемент в область шаблона PRD, см. Добавление элемента в шаблон PRD.
  2. Наведите курсор на элемент и дважды кликните по нему. На экране отобразится поле для выбора значения.

    Выберите значение из раскрывающегося списка.

    ИЛИ выберите значение в окне выбора, для вызова окна нажмите иконку .

Выбранное значение отображается в поле элемента, на вкладке "Структура" в строке элемента и на вкладке "Атрибуты" в атрибуте "Поле".

Для отображения даты в отчете следует использовать специальный элемент "Поле с датой"

Калькулируемые даты

Возможность различного представления даты используется только для результирующего множества, которое содержит информацию о дате. Обычно, дата выводится как статическое число или диапазон, также дата может быть представлена в виде: "первый понедельник месяца" или "каждая вторая среда".

Чтобы задать представление даты в шаблоне PRD, выполните следующие действия:

  1. Откройте шаблон PRD и выберите элемент типа "Текстовое поле", см. Типы элементов шаблона PRD.
  2. На вкладке "Атрибуты" выберите атрибут "Значение" (блок "Общие") и нажмите иконку в строке атрибута.

    На экране откроется форма редактирования выражения.

  3. Нажмите кнопку , чтобы вызвать редактор формул (Редактор формул в Pentaho Report Designer ) и выберите:

    • категория: "Дата/время";
    • оператор: "Дата значение".
    • формула: введите в формулу значение даты:

      =DATEVALUE("Текст")

      Часто используемые расчетные формулы даты:

      • Вчерашняя дата:

        =DATEVALUE(DATE(YEAR(NOW());MONTH(NOW());DAY(NOW()-1)))

      • Первый день текущего месяца:

        =DATEVALUE(DATE(YEAR(NOW());MONTH(NOW());1))

      • Воскресенье текущей недели:

        =DATEVALUE(DATE(YEAR(NOW());MONTH(NOW());DAY(NOW())-WEEKDAY(Now();2)))

      • Суббота текущей недели:

        =DATEVALUE(DATE(YEAR(NOW());MONTH(NOW());DAY(NOW())-WEEKDAY(Now())+7))

  4. Нажмите кнопку Закрыть.

Поле с датой

Значением элемента "Поле с датой" могут быть:

Определить значение элемента "Поле с датой"

Чтобы определить значение элемента "Поле с датой", выполните следующие действия:

  1. Добавьте элемент "Поле с датой" в область шаблона PRD, см. Добавление элемента в шаблон PRD.
  2. Наведите курсор на элемент и дважды кликните по нему. На экране отобразится поле для выбора значения.

    Выберите значение из раскрывающегося списка.

    ИЛИ Выберите значение в окне выбора, для вызова окна нажмите иконку .

Выбранное значение отображается в поле элемента, на вкладке "Структура" в строке элемента и на вкладке "Атрибуты" в атрибуте "Поле".

Поле выбора даты

Выбор даты позволяет отсортировать данные по дате и времени.

Чтобы добавить поле выбора даты в шаблон PRD, выполните следующие действия:

  1. Откройте шаблон PRD.
  2. Добавьте параметр отчета, со следующими параметрами:

    • тип значения: "Date";
    • формула значения по умолчанию

      • Текущий день, дата и время:

        =NOW()

        ИЛИ

        =DATEVALUE(DATE(YEAR(NOW());MONTH(NOW());DAY(NOW())-WEEKDAY(Now()))).

      • Текущая дата:

        =TODAY()

    • тип отображения: "Календарь".

    Описание добавления параметра см. Добавление системного параметра в шаблоне Pentaho Report Designer.

    Для определения значений, связанных со временем, используется тип данных "Time" и соответствующее значение в поле "Часовой пояс".

    Нажмите кнопку ОК. Форма добавления закроется, новый параметр отобразится на вкладке "Данные".

  3. Добавьте элемент типа "Поле с датой", см. Добавление элемента в шаблон PRD.
  4. Выберите в качестве значения элемента "Поле с датой" параметр типа "Date".
  5. Нажмите иконку слева вверху экрана, см. Предпросмотр шаблона PRD.

Поле для выбора даты отобразится в панели параметров отчета, редактируемых пользователями .

Форматирование даты и времени

По умолчанию для отображения дат и чисел используются стандартные форматы.

Выбор формата для отдельного элемента

Чтобы выбрать формат даты для отдельного элемента, выполните следующие действия:

  1. Выберите элемент шаблона PRD.
  2. На вкладке "Атрибуты" выберите значение атрибута "Формат" в группе "Общие".

Текст с датой

Чтобы в отчете отображался текст с датой, создайте соответствующий форматтер даты и присвойте его полю отчета тип дата с этим форматтером.

Чтобы в отчете отображался текст с датой, создайте соответствующий формат для элемента:

  1. Выберите элемент шаблона PRD.
  2. На вкладке "Атрибуты" (группа "Общие", атрибут "Формат") добавьте новый формат даты, например, "Отчет сформирован dd.MM.yyyy HH:mm".

    Для вызова окна редактирования формата нажмите иконку .

Также для отображения текста с датой можно использовать два отдельных элемента "Текстовое поле" и "Поле с датой".

Настройка списка значений атрибута "Формат". Добавление нового формата даты

Список значений атрибута "Формат" настраивается: можно изменить порядок отображения элементов списка и добавить в список новое значение.

Чтобы настроить список значений атрибута "Формат", выполните следующие действия:

  1. Выберите в меню "Редактирование" пункт "Настройки". На экране отобразится форма "Установки".
  2. Нажмите кнопку Редактировать предустановленные форматы даты и времени.

    На экране откроется форма редактирования формата даты и времени.

  3. Выполните настройки формата:

    • Измените последовательность элементов списка: выберите элемент списка и установите его положение с помощью стрелок "вверх" и "вниз".
    • Добавьте новый формат даты /чисел: нажмите на иконку и в новой строке укажите формат даты /числа.
    • Удалите формат даты /чисел. выберите формат и нажмите на иконку .
  4. Нажмите кнопку ОК на форме редактирования и затем кнопку Применить на форме "Установки".

Элемент "Сообщение"

Значением элемента "Сообщение" могут быть параметры, определенные в скрипте отчета, см. Использование параметров, определенных в скрипте отчета.

Чтобы определить значение элемента "Сообщение", выполните следующие действия:

  1. Добавьте элемент в шаблон PRD, см. Добавление элемента в шаблон PRD.
  2. Наведите курсор на элемент и дважды кликните по нему. На экране отобразится поле для ввода значения. Нажмите иконку для вызова окна ввода.

    Введите значение — переменная записывается в формате:

    $("код параметра, заданный в скрипте отчета")

    ИЛИ На вкладке "Атрибуты" в разделе "Общие" введите вручную значение параметра в поле "Значение".

Указанное значение отображается в элементе шаблона PRD, на вкладке "Структура" в строке элемента и на вкладке "Атрибуты" в атрибуте "Значение".

Элемент "Диаграмма"

Чтобы добавить диаграмму в шаблон PRD, выполните следующие действия:

  1. Добавьте элемент в шаблон PRD, см. Добавление элемента в шаблон PRD.
  2. Наведите курсор на элемент, откройте правой кнопкой контекстное меню и выберите первый пункт "Диаграмма".

    ИЛИ выполните двойной клик по диаграмме.

    На экране откроется форма редактирования диаграммы.

  3. Выберите вид диаграммы в панели иконок или раскрывающемся списке.

  4. Укажите параметры отображения диаграммы в отчете, блок настройки располагается в левой части формы, и данные, отображаемые на диаграмме, на вкладке "Первичный источник данных", набор данных зависит от типа диаграммы.

    • Для круговой диаграммы (Pie Chart) должны быть заданы:
      • value-columns — значения "кусков";
      • series-by-field — название "кусков".
    • Для линейной диаграммы (Line Data) должны быть заданы:
      • category-column;
      • value-columns;
      • series-by-field.
    • Для гистограммы (Bar Chart) должны быть заданы:
      • category-column — объекты, для которых вычисляются значения;
      • value-columns — значения столбцов;
      • series-by-field — названия столбцов;
      • group-by — если используется группировка, обязательно указать, какая именно.
  5. Нажмите кнопку "ОК".

Форма редактирования закроется, диаграмма отобразится в шаблоне PRD согласно указанным параметрам.

Гиперссылка на карточку объекта или вкладку в шаблоне отчета PRD

Чтобы добавить в шаблон PRD гиперссылку для перехода на карточку объекта, выполните следующие действия:

  1. Напишите SQL запрос, возвращающий UUID объекта и его желаемое представление (например, ФИО сотрудника), см. Составление SQL запроса для извлечения данных. Возвращать представление нужно, чтобы в отчете/печатной форме отображались названия объектов, а не UUID.

    Пример. SQL запрос возвращает колонку с UIID сотрудников, представленными в виде соответствующих ФИО:

    select ('employee$' || empl.id) as employeeUuid,
    empl.title as fio,
  2. Добавьте элемент "string-field" в шаблон PRD, см. Добавление элемента в шаблон PRD.
  3. На вкладке "Атрибуты" (Attributes), см. Атрибуты элемента шаблона PRD укажите значения атрибутов:

    • field: fio (имя подключения, указанного в SQL запросе), в отчете будут отображаться ФИО сотрудников;
    • rich-text-type: plain;
    • в блоке links укажите:

      • "html-anchor": true;
      • "url": expression, в скрипте будет формироваться ссылка (например. =[employeeurl]).

        Для этого нажмите иконку и в диалоговом окне "Edit Expression" введите выражение. После закрытия окна вместо иконки должна отображаться иконка .

      • "target": blank, ссылка будет открываться в новом окне;
    • укажте форматирование элемента. Например значение в виде ссылки: "text-color" — blue (цвет синий); "underline" — true (подчеркивание).
  4. В скрипте отчета укажите, см. Скрипт шаблона отчета (печатной формы):

    Пример. Скрипт, генерирующий ссылку для перехода в карточку объекта:

    table.rows.each() { row ->
    row.employeeurl = api.web.open(row.employeeuuid);
    }
    return table;
    //employeeurl - должно быть тоже самое имя, что указывали в параметр url в Pentaho Report Designer, см. п. 3.

После выполнения данной настройки из карточки отчета можно перейти на карточку объекта.

Для генерации ссылки для перехода на вкладку, в скрипте следует указывать UUID конкретной вкладки:

table.rows.each() { row ->
row.employeeurl = api.web.open(row.employeeuuid + '!{\"tab":"f99fb6a0-13ad-0793-0000-00005e61b558\"}');
}
return table;

Использование параметров, определенных в скрипте отчета

Параметры отчета и функции могут определяться в скрипте отчета.

Использование параметров и функций, определенных в скрипте отчета

Чтобы разместить в шаблоне PRD параметры отчета, определенные в скрипте отчета, выполните следующие действия:

  1. Откройте шаблон PRD.
  2. Создайте в шаблоне PRD параметр с таким же кодом, как параметр скрипта отчета, см. Добавление системного параметра в шаблоне Pentaho Report Designer
  3. Добавьте элемент, см. Добавление элемента в шаблон PRD.
  4. В качестве значения элемента укажите:

    $('код параметра'_'постфикс параметра')

    Код параметра, определенного в скрипте отчета, указывается при определении значения элемента "Сообщение", см. Элемент "Сообщение".

    Постфикс параметра, определенного в скрипте отчета, указывается, если в качестве параметра используется объект или элемент справочника. В этом случае используется элемент отчета типа "Текстовое поле", значение которого устанавливается на вкладке "Атрибуты" данного элемента в атрибуте "Поле" (блок "Общие"), см. Текстовое поле, числовое поле.

Использование функций, определенных в скрипте отчета

Чтобы использовать в шаблоне PRD функции, определенные в скрипте отчета, выполните следующие действия:

  1. Откройте шаблон PRD.
  2. Добавьте элемент типа "текстовое поле/ числовое поле/ поле с датой, см. Добавление элемента в шаблон PRD.
  3. На вкладке "Атрибуты" в разделе "Общие" в атрибуте "Поле" введите вручную имя функции, определенной в скрипте. Остальные атрибуты не заполняются.

    Функция будет применена для всех значений этого поля.

Пример. В скрипте отчета определена функция:

def getFunctions()
{
return [api.reports.groupFunction('interval',
{ row -> row.laborexpens ? formatInterval(row.laborexpens.first()) : '' }
]
}

Для использования данной функции в шаблоне PRD в общих атрибутах элемента (текстовое поле /числовое поле /поля с датой) в атрибуте "Поле" вводится 'interval'.