Настройка фильтра
Создайте в директории сервера биллинга директорию 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 - для ядра).