Настройка фильтра
Создайте в директории сервера биллинга директорию reports. Создайте файл <модуль>_<id>.rep.xml, где <модуль> - название модуля, для которого создаётся отчёт: kernel (ядро, основной модуль), dialup, voiceip, bill, mps и т.д., а <id> - уникальное имя отчёта (рекомендуется добавлять суффикс, чтобы идентификатор не совпал с идентификаторами отчётов, которые входят/войдут в будущем в дистрибутив модуля).
Структура файла *.rep.xml:
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
report
title
=
"Название отчета"
>
<список_компонентов_фильтра>
</
report
>
В *.rep.xml хранится название отчёта и описание фильтра в виде xml-файла. report/@title - отображаемое в списке название отчёта (если имя пустое или отсутствует, то отчет не попадает в выпадающий список с перечнем отчетов).
Внутри report возможно использовать следующие фильтры:
Имя |
Параметры |
Описание |
Пример использования |
Внешний вид |
hide |
title - название панели |
Панель-контейнер, которая показывает/скрывает свое содержимое по щелчку на заголовке. |
<hide title="Месяцы"> <month name="m1" title="Месяц с"/> <month name="m2" title="Месяц по"/> </hide> |
|
combo |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта; title - название для выпадающего списка; textBefore - текст до выпадающего списка; textAfter - текст после выпадающего списка; sql - select-запрос, который должен возвращать список значений вида "id->title", которыми заполнится выпадающий список. Параметры для item: id - уникальный код элемента; title - название элемента. |
Выпадающий список с возможностью выбора значений. Заполнение значений списка осуществляется с помощью вложенного элемента item и/или sql-запроса. |
<combo name="combo" title="ComboBox" textBefore="Рассылка" textAfter="для акции" sql="select id,title from dispatch_dispatch"> <item id="0" title="-" /> <item id="1" title="Value 1" /> </combo> |
|
list |
name - имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта; title - название списка; sql - select-запрос, который должен возвращать список значений вида "id->title", которыми заполнится выпадающий список; tabbed - перенести список в закладочницу. Параметры для item: id - уникальный код элемента; title - название элемента. |
Список с возможностью выбрать несколько элементов одновременно. |
<list name="name" title="Список рассылок" sql="select id, title from dispatch_dispatch" tabbed="1"> <item id="0" title="Не выбрано" /> </list> |
|
module |
name - имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта; Параметры service_set: mid - код модуля, для которого нужно каталогизировать услуги. Параметры folder: title - название каталога; items - список услуг через запятую. Также возможно указать ключевое слово others и будут отображены в данном каталоге ранее не указанные услуги. |
Список услуг модулей с возможностью произвольной каталогизации. Выводятся только те модули, для которых заведены услуги. Внимание! Если для модуля не указан service_set, то отобразится линейный список всех услуг модуля. |
<module title="Услуги модулей" name="sids"> <service_set mid="179"> <folder title="Платный интернет"> <folder title="ДОРОГОЙ интернет"> <folder title="САМЫЙ-САМЫЙ ДОРОГОЙ интернет" items="208" /> <folder title="СУПЕРДОРОГОЙ интернет" items="209,210" /> </folder> <folder title="ДЕШЕВЫЙ интернет" items="207" /> </folder> <folder title="Интернет по сходной цене" items="205,203" /> <folder title="Интернет в регионах" items="other" /> </service_set> </module> |
|
listParams |
name - имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта; |
Имеющиеся в системе списковые параметры с значениями. |
<listParams name="par" title="Списковые параметры" /> |
|
textField |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта; title - название для текстового поля; textBefore - текст до поля; textAfter - текст после поля. |
Обычное текстовое поле |
<textField name="text" title="Текстовое поле" textBefore="ДО" textAfter="ПОСЛЕ" /> |
|
contracts |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка кодов договоров через запятую. |
Выбор одного и более договора, которые в данный момент открыты в клиенте биллинга. |
<contracts name="contracts" /> |
|
date |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта; title - название для каледаря; default - значение, установленное по умолчанию. Возможны варианты: today - сегодня, yesterday - вчера, tommorrow - завтра, first_day_of_month - первый день месяца, last_day_of_month - последний день месяца |
Выбор даты в календаре. |
<date name="dt" title="Дата" default="first_day_of_month" /> |
|
hours |
name1 и name2 - имена переменных, по которым будут доступны значения данного фильтра в коде bgbs-скрипта. |
Выбор временного интервала "с - по". |
<hours name1="h1" name2="h2"/> |
|
month |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта; title - название для панели с выбором месяца. |
Выбор конкретного месяца в календаре. |
<month name="h1" title="Месяц"/> |
|
monthAndDays |
name1 и name2 - имена переменных, по которым будут доступны значения данного фильтра в коде bgbs-скрипта; title - название для календаря. |
Выбор интервала дней в определенном месяце |
<monthAndDays name1="h1" name2="h2" title="День месяца"/> |
|
period |
name1 и name2 - имена переменных, по которым будут доступны значения данного фильтра в коде bgbs-скрипта; title - название для панели периода; default1 и default2 - значения по умолчанию для начала и конца периода. Возможны варианты: today - сегодня, yesterday - вчера, tommorrow - завтра, first_day_of_month - первый день месяца, last_day_of_month - последний день месяца |
Выбор периода с определенной даты до определенной даты. |
<period name1="h1" name2="h2" title="Период" default1="today" default2="tommorrow"/> |
|
contractGroups |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта; title - название для списка; select_name - имя переменной, по которой будет доступен выбранный режим "И/ИЛИ" в коде bgbs-скрипта в виде строки "and"/"or". |
Список групп договоров. Возможность выбора режима И/ИЛИ появляется при указании в параметрах фильтра атрибута select_name. |
<contractGroups name="gr" title="Группы" select_name="andOr"/> |
|
services |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка услуг через запятую; title - название для списка. |
Список услуг. Если данный фильтр будет добавлен в отчеты ядра, от отобразится весь список услуг в системе, а иначе только того модуля, для которого строится отчет. |
<services name="srv" title="Услуги" /> |
|
nases |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка nas через запятую; title - название для списка. |
Список NAS модулей. |
<nases name="nas" title="NAS" /> |
|
dealers |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка дилеров через запятую; title - название для списка. |
Список дилеров. |
<dealers name="d" title="Дилеры" /> |
|
paymentTypes |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка типов платежей через запятую; title - название для списка. |
Список типов платежей. |
<paymentTypes name="pt" title="Типы платежей" /> |
|
chargeTypes |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка типов расходов через запятую; title - название для списка. |
Список типов расходов. |
<chargeTypes name="ct" title="Типы расходов" /> |
|
tariffs |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка тарифов через запятую; title - название для списка. |
Список тарифов в системе. |
<tariffs name="tariff" title="Тарифы" /> |
|
tariffOptions |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка тарифных опций через запятую; title - название для списка. |
Список тарифных опций. |
<tariffOptions name="tariffOptions" title="Тарифные опции" /> |
|
tariffGroups |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка тарифных групп через запятую; title - название для списка. |
Список групп тарифов. |
<tariffGroups name="tariffGroups" title="Группы тарифов" /> |
|
registerCategories |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка категорий через запятую; title - название для списка. |
Список категорий проблем плагина CRM. |
<registerCategories name="rc" title="Категории" /> |
|
registerExecutors |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка исполнителей через запятую; title - название для списка; blank - добавлять ли пункт меню "Без исполнителей". Возможные значения: 1 - добавлять, 0 - не добавлять. |
Список исполнителей плагина CRM. |
<registerExecutors name="re" title="Исполнители" blank="1" /> |
|
registerTaskType |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка категорий через запятую; title - название для списка. |
Список типов задач плагина CRM. |
<registerTaskType name="rtt" title="Типы задач" /> |
|
registerGroups |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка групп решения через запятую; title - название для списка. |
Список групп решения плагина CRM. |
<registerGroups name="rg" title="Группы решения" /> |
|
users |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка пользователей через запятую; title - название для списка. |
Список пользователей в системе с возможностью фильтрацией по активности. |
<users name="users" title="Пользователи биллинга" /> |
|
address |
title - название для фильтра; cityName, streetName, areaName, quarterName - названия переменных, по которым будут доступны коды соответствующих адресных компонент; houseName - введенный номер дома. |
Выбор адресных компонент: город, улица, район, квартал, дом. |
<address cityName="cn" streetName="sn" areaName="an" quarterName="cn" houseName="hn" title="Адрес абонента" /> |
|
cashcheckKKM |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде кода принтера; title - название для выпадающего списка. |
Выбор одного из ККМ, установленных в модуле Cashcheck. |
<cashcheckKKM name="kkm" title="Список принтеров" /> |
|
inetDevices |
name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка устройств через запятую; title - название для списка; mid - код экземпляра модуля Inet, для которого необходимо вывести устройства. |
Выбор устройств модуля Inet с фильтрацией. |
<inetDevices name="dev" title="Список устройств" /> |
|
Если фильтр большой и не помещается в высоту, то можно установить в элемент report атрибуты высоты и использования скроллинга (атрибуты height и scroll соответственно). По умолчанию элементы фильтра располагаются друг под другом, последними размещаются фильтры-вкладки. Однако, можно изменять положение элементов фильтра, их размер и занимаемые пространство. За это отвечают атрибуты x, y, width, height, xweight, yweight, fill, anchor. Эти атрибуты соответствуют параметрам размещения менеджера раскладки GridBagLayout, который используется в клиенте биллинга (параметры gridx, gridy, gridwidth, gridheight, weightx, weighty, fill, anchor соответственно). Подробнее можно почитать на официальной странице документации Oracle, в обучающем уроке от Oracle, на русскоязычной странице одного пользователей интернет.
Код генерации отчёта имеет доступ к:
значениям фильтра с использованием атрибута name;
переменным конфигурации модуля, используя название переменной конфигурации, также можно использовать для передачи в отчёт кодов параметров и т.п.;
переменной mid - коду текущего выбранного экземпляра модуля, для которого делается отчёт (0 - для ядра).