Все страницы
Перейти к концу метаданных
Переход к началу метаданных

Проблема

На текущий момент есть задача по учету рабочего времени на разных объектах подключенных к одной БД. Нам нужно в источник данных (данные по рабочему времени с детализацией) добавить реквизит dev_name (наименование устройства). Тогда мы получим корректный отчет.

Решение

Для того, чтобы добавить реквизиты dev_name необходимо создать пользовательский источник данных. В существующий источник данных их добавить не получится.

Вот подробная инструкция:

Создайте пользовательский отчет на основе "По рабочему времени с детализацией".

Выделите источник данных.

Справа в свойствах данных выберите из выпадающего списка "пользовательский", нажмите ввод.

Затем в свойствах запрос нажмите редактировать и вставьте запрос

WITH workers_name AS (
SELECT * FROM get_report_worker_info( CAST(:a_workers AS BIGINT[]) )
)
SELECT wt.*,
EXTRACT(DOW FROM wt.cur_date) AS day_num,
get_object_name(wt.id_dev_beg) as dev_beg_name,
get_object_name(wt.id_dev_end) as dev_end_name,
s.name AS sched_name,
ws.full_name,
ws.firm_name,
ws.dep_name,
ws.job_name,
ws.firm_id,
ws.dep_id,
ws.worker_num,
ws.custom
FROM get_workers_time(:d_date_beg, :d_date_end, :n_calc_plan_id, :a_workers, :c_locale, :b_skip_empty) wt
LEFT JOIN workers_name ws ON wt.worker_id = ws.obj_id
LEFT JOIN schedule s ON sched_id = s.id
ORDER BY ws.full_name, wt.worker_id, wt.cur_date, wt.cal_beg, wt.sort_beg NULLS FIRST;

нажмите ввод.

Далее в отчете добавляете колонку

В колонке указываете контроллер на вход

Потом добавляете еще колонку и подобным образом указываете контроллер на выход

$F{ds,dev_end_name}

сохраняете отчет.

Связанные статьи