Разработка:storages/reports — различия между версиями

Материал из DOF
Перейти к: навигация, поиск
(Описаны правила составления отчетов)
 
(не показано 7 промежуточных версий 3 участников)
Строка 5: Строка 5:
  
 
===Таблица в базе данных===
 
===Таблица в базе данных===
''reports'' - Отчеты о деятельности учителей и учеников.
+
''reports'' - Отчеты о деятельности учителей и учеников. Изначально через интерфейс "заказывается" отчет(полный или краткий) по учителям или ученикам и лишь потом с использованием КРОНА отчет формируется(срабатывание крона раз в сутки по умолчанию)
  
 
====Подробный формат полей в таблице:====
 
====Подробный формат полей в таблице:====
Строка 15: Строка 15:
 
* requestdate - когда запросил отчет
 
* requestdate - когда запросил отчет
 
* completedate - когда отчет был завершен
 
* completedate - когда отчет был завершен
* status (пока без workflow) - request(запрошен), completed(сформирован), error(ошибка)
+
* crondate - время, раньше которого отчёт не будет собираться(иными словами, когда отчету начать собираться)
 +
* status (пока без workflow) - requested(запрошен), completed(сформирован), error(ошибка)
 
* departmentid, - id подразделения из талицы [[Разработка:storages/departments | departments ]], которому принадлежит отчет
 
* departmentid, - id подразделения из талицы [[Разработка:storages/departments | departments ]], которому принадлежит отчет
 
* objectid - id объекта по которому запрашивается отчет(необязательно)  
 
* objectid - id объекта по которому запрашивается отчет(необязательно)  
Строка 21: Строка 22:
 
* enddate - по какой период собираются данные для отчета(необязательно)  
 
* enddate - по какой период собираются данные для отчета(необязательно)  
 
* requestdata - дополнительные данные для формирования отчета (будет хранится сериализованный объект). Текст, 64 килобайта. Индекс не * создавать(необязательно)  
 
* requestdata - дополнительные данные для формирования отчета (будет хранится сериализованный объект). Текст, 64 килобайта. Индекс не * создавать(необязательно)  
* filepath - путь к файлу. имя файла - это id записи. Расширение dat.
+
* filepath - относительный путь к файлу. имя файла - это id записи. Расширение dat.
  
 
=== Правила составления отчетов ===
 
=== Правила составления отчетов ===
Строка 39: Строка 40:
 
     dof_'''sync'''_'''mreports'''_report_'''studentshort'''
 
     dof_'''sync'''_'''mreports'''_report_'''studentshort'''
  
 +
==== Класс dof_storage_reports_basereport ====
  
 
+
===== plugintype() =====
[[Категория:Разработка]]
+
Абстрактный метод. В нем устанавливается тип плагина, в котором находится класс отчета.
[[Категория:Плагины_storages]]
+
===== plugincode() =====
 +
Абстрактный метод. В нем устанавливается код плагина, в котором находится класс отчета.
 +
=====  code() =====
 +
Абстрактный метод.  Код самого отчета. В одном плагине не должно быть двух отчетов с одинаковым кодом.
 +
===== name() =====
 +
Абстрактный метод. Полное название отчета. Может генерироваться во время сбора данных по отчету.
 +
===== save() =====
 +
Метод, создающий структуру объекта для вставки в базу. Метод вызывается автоматически, и его не следует переопределять без необходимости. Если нужно дополнить или изменить логику сохранения данных - то переопределяется метод save_data().
 +
===== save_data() =====
 +
Метод, которые следует переопределить в дочернем классе, если нужно добавить новые данные в объект отчета.
 +
Входные параметры:
 +
* (object) $report - объект данных для отчета.
 +
Возвращаемые значения:
 +
* (object) $report - дополненный объект с данеными для отчета.
 +
===== generate() =====
 +
Эта функция запускает процес сбора данных для отчета.
 +
===== load() =====
 +
Загрузить данные для отчета из базы данных
 +
===== load_file() =====
 +
Загрузить данные для отчета из файла
 +
===== load_data() =====
 +
Дополнительный метод, который переопределяется в дочерних классах отчетов, и определяет каким именно образом будут обрабатываться данные из файла отчета.
 +
===== generate_data (protected) =====
 +
Метод, предусмотренный для расширения логики генерации файла в дочерних классах.
 +
===== add_report_css =====
 +
Метод, предусмотренный для добавления css файлов до печати шапки документа. Переопределяется в дочернем классе.
 +
===== add_report_js =====
 +
Метод, предусмотренный для добавления js файлов до печати шапки документа. Переопределяется в дочернем классе.
 +
===== templater_csv_show_header =====
 +
Поддержка отчетом заголовков в csv-формате.

Текущая версия на 19:00, 16 января 2017

Плагин
Название reports
Тип storages


Таблица в базе данных

reports - Отчеты о деятельности учителей и учеников. Изначально через интерфейс "заказывается" отчет(полный или краткий) по учителям или ученикам и лишь потом с использованием КРОНА отчет формируется(срабатывание крона раз в сутки по умолчанию)

Подробный формат полей в таблице:

  • plugintype - тип плагина (storage,im....)
  • plugincode - код плагтна
  • code - код отчета внутри плагина.
  • name - название отчета русскими буквами. Генерируется в момент создания
  • personid - id из талицы persons того,кто запросил отчет
  • requestdate - когда запросил отчет
  • completedate - когда отчет был завершен
  • crondate - время, раньше которого отчёт не будет собираться(иными словами, когда отчету начать собираться)
  • status (пока без workflow) - requested(запрошен), completed(сформирован), error(ошибка)
  • departmentid, - id подразделения из талицы departments , которому принадлежит отчет
  • objectid - id объекта по которому запрашивается отчет(необязательно)
  • begindate- с какого периода собираются данные для отчета(необязательно)
  • enddate - по какой период собираются данные для отчета(необязательно)
  • requestdata - дополнительные данные для формирования отчета (будет хранится сериализованный объект). Текст, 64 килобайта. Индекс не * создавать(необязательно)
  • filepath - относительный путь к файлу. имя файла - это id записи. Расширение dat.

Правила составления отчетов

Все классы, собирающие данные для отчетов должны наследоваться от класса dof_storage_reports_basereport. Файл с классом сбора данных для отчета должен находиться в папке плагина:

   /reports/<код_отчета>/init.php

и называться

   dof_<код плагина>_<название плагина>_report_<код отчета>

Пример

Для отчета с кодом "studentshort".

Путь к файлу:

   /dof/sync/mreports/reports/studentshort/init.php

Название класса:

   dof_sync_mreports_report_studentshort

Класс dof_storage_reports_basereport

plugintype()

Абстрактный метод. В нем устанавливается тип плагина, в котором находится класс отчета.

plugincode()

Абстрактный метод. В нем устанавливается код плагина, в котором находится класс отчета.

code()

Абстрактный метод. Код самого отчета. В одном плагине не должно быть двух отчетов с одинаковым кодом.

name()

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

save()

Метод, создающий структуру объекта для вставки в базу. Метод вызывается автоматически, и его не следует переопределять без необходимости. Если нужно дополнить или изменить логику сохранения данных - то переопределяется метод save_data().

save_data()

Метод, которые следует переопределить в дочернем классе, если нужно добавить новые данные в объект отчета. Входные параметры:

  • (object) $report - объект данных для отчета.

Возвращаемые значения:

  • (object) $report - дополненный объект с данеными для отчета.
generate()

Эта функция запускает процес сбора данных для отчета.

load()

Загрузить данные для отчета из базы данных

load_file()

Загрузить данные для отчета из файла

load_data()

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

generate_data (protected)

Метод, предусмотренный для расширения логики генерации файла в дочерних классах.

add_report_css

Метод, предусмотренный для добавления css файлов до печати шапки документа. Переопределяется в дочернем классе.

add_report_js

Метод, предусмотренный для добавления js файлов до печати шапки документа. Переопределяется в дочернем классе.

templater_csv_show_header

Поддержка отчетом заголовков в csv-формате.