Настройка фильтра

Создайте в директории сервера биллинга директорию reports. Создайте файл <модуль>_<id>.rep.xml, где <модуль> - название модуля, для которого создаётся отчёт: kernel (ядро, основной модуль), dialup, voiceip, bill, mps и т.д., а <id> - уникальное имя отчёта (рекомендуется добавлять суффикс, чтобы идентификатор не совпал с идентификаторами отчётов, которые входят/войдут в будущем в дистрибутив модуля).

Структура файла *.rep.xml:

Структура файла 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>

images/download/attachments/43385467/hide_close.png images/download/attachments/43385467/hide_open.png

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>

images/download/attachments/43385467/combo.png

list

name - имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта;

title - название списка;

sql - select-запрос, который должен возвращать список значений вида "id->title", которыми заполнится выпадающий список;

tabbed - перенести список в закладочницу.

Параметры для item:

id - уникальный код элемента;

title - название элемента.

Список с возможностью выбрать несколько элементов одновременно.
Заполнение значений списка осуществляется с помощью вложенного элемента item и/или sql-запроса.

<list name="name" title="Список рассылок" sql="select id, title from dispatch_dispatch" tabbed="1">

<item id="0" title="Не выбрано" />

</list>

images/download/attachments/43385467/list.png

module

name - имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта;
title - название панели.

Параметры service_set:

mid - код модуля, для которого нужно каталогизировать услуги.

Параметры folder:

title - название каталога;

items - список услуг через запятую. Также возможно указать ключевое слово others и будут отображены в данном каталоге ранее не указанные услуги.

Список услуг модулей с возможностью произвольной каталогизации. Выводятся только те модули, для которых заведены услуги.
Если необходима каталогизация услуг для определенного модуля, то необходимо использовать тег service_set с вложенными тегами folder, которые, в свою очередь, также могут содержать folder.

Внимание! Если для модуля не указан 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>

images/download/attachments/43385467/module.png

listParams

name - имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта;
title - название для панели с списковыми параметрами договора.

Имеющиеся в системе списковые параметры с значениями.

<listParams name="par" title="Списковые параметры" />

images/download/attachments/43385467/listParams.png

textField

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта;

title - название для текстового поля;

textBefore - текст до поля;

textAfter - текст после поля.

Обычное текстовое поле

<textField name="text" title="Текстовое поле" textBefore="ДО" textAfter="ПОСЛЕ" />

images/download/attachments/43385467/textfield.png

contracts

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка кодов договоров через запятую.

Выбор одного и более договора, которые в данный момент открыты в клиенте биллинга.

<contracts name="contracts" />

images/download/attachments/43385467/contracts.png

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" />

images/download/attachments/43385467/date.png

hours

name1 и name2 - имена переменных, по которым будут доступны значения данного фильтра в коде bgbs-скрипта.

Выбор временного интервала "с - по".

<hours name1="h1" name2="h2"/>

images/download/attachments/43385467/hours.png

month

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта;

title - название для панели с выбором месяца.

Выбор конкретного месяца в календаре.

<month name="h1" title="Месяц"/>

images/download/attachments/43385467/month.png

monthAndDays

name1 и name2 - имена переменных, по которым будут доступны значения данного фильтра в коде bgbs-скрипта;

title - название для календаря.

Выбор интервала дней в определенном месяце

<monthAndDays name1="h1" name2="h2" title="День месяца"/>

images/download/attachments/43385467/monthAndDays.png

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"/>

images/download/attachments/43385467/period.png

contractGroups

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта;

title - название для списка;

select_name - имя переменной, по которой будет доступен выбранный режим "И/ИЛИ" в коде bgbs-скрипта в виде строки "and"/"or".

Список групп договоров. Возможность выбора режима И/ИЛИ появляется при указании в параметрах фильтра атрибута select_name.

<contractGroups name="gr" title="Группы" select_name="andOr"/>

images/download/attachments/43385467/contractGroups.png

services

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка услуг через запятую;

title - название для списка.

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

<services name="srv" title="Услуги" />

images/download/attachments/43385467/services.png

nases

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка nas через запятую;

title - название для списка.

Список NAS модулей.

<nases name="nas" title="NAS" />

images/download/attachments/43385467/nases.png

dealers

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка дилеров через запятую;

title - название для списка.

Список дилеров.

<dealers name="d" title="Дилеры" />

images/download/attachments/43385467/dealers.png

paymentTypes

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка типов платежей через запятую;

title - название для списка.

Список типов платежей.

<paymentTypes name="pt" title="Типы платежей" />

images/download/attachments/43385467/paymentTypes.png

chargeTypes

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка типов расходов через запятую;

title - название для списка.

Список типов расходов.

<chargeTypes name="ct" title="Типы расходов" />

images/download/attachments/43385467/chargeTypes.png

tariffs

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка тарифов через запятую;

title - название для списка.

Список тарифов в системе.

<tariffs name="tariff" title="Тарифы" />

images/download/attachments/43385467/tariffs.png

tariffOptions

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка тарифных опций через запятую;

title - название для списка.

Список тарифных опций.

<tariffOptions name="tariffOptions" title="Тарифные опции" />

images/download/attachments/43385467/tariffOptions.png

tariffGroups

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка тарифных групп через запятую;

title - название для списка.

Список групп тарифов.

<tariffGroups name="tariffGroups" title="Группы тарифов" />

images/download/attachments/43385467/tariffGroups.png

registerCategories

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка категорий через запятую;

title - название для списка.

Список категорий проблем плагина CRM.

<registerCategories name="rc" title="Категории" />

images/download/attachments/43385467/registerCategories.png

registerExecutors

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка исполнителей через запятую;

title - название для списка;

blank - добавлять ли пункт меню "Без исполнителей". Возможные значения: 1 - добавлять, 0 - не добавлять.

Список исполнителей плагина CRM.

<registerExecutors name="re" title="Исполнители" blank="1" />

images/download/attachments/43385467/registerExecutors.png

registerTaskType

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка категорий через запятую;

title - название для списка.

Список типов задач плагина CRM.

<registerTaskType name="rtt" title="Типы задач" />

images/download/attachments/43385467/registerTaskType.png

registerGroups

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка групп решения через запятую;

title - название для списка.

Список групп решения плагина CRM.

<registerGroups name="rg" title="Группы решения" />

images/download/attachments/43385467/registerGroups.png

users

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка пользователей через запятую;

title - название для списка.

Список пользователей в системе с возможностью фильтрацией по активности.

<users name="users" title="Пользователи биллинга" />

images/download/attachments/43385467/users.png

address

title - название для фильтра;

cityName, streetName, areaName, quarterName - названия переменных, по которым будут доступны коды соответствующих адресных компонент;

houseName - введенный номер дома.

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

<address cityName="cn" streetName="sn" areaName="an" quarterName="cn" houseName="hn" title="Адрес абонента" />

images/download/attachments/43385467/address.png

cashcheckKKM

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде кода принтера;

title - название для выпадающего списка.

Выбор одного из ККМ, установленных в модуле Cashcheck.

<cashcheckKKM name="kkm" title="Список принтеров" />

images/download/attachments/43385467/cashcheckKKM.png

inetDevices

name -имя переменной, по которой будет доступно значение данного фильтра в коде bgbs-скрипта в виде списка устройств через запятую;

title - название для списка;

mid - код экземпляра модуля Inet, для которого необходимо вывести устройства.

Выбор устройств модуля Inet с фильтрацией.

<inetDevices name="dev" title="Список устройств" />

images/download/attachments/43385467/inetDevices_dialog.png images/download/attachments/43385467/inetDevices.png

Если фильтр большой и не помещается в высоту, то можно установить в элемент 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 - для ядра).