Класс wReport() служит для построения отчетов. Класс использует внешнюю библиотеку TinyButStrong и ускоряет разработку отчетов. Подробнее о возможностях библиотеки описано в п..
Основные параметры класса
| Параметр | Значение по умолчанию | Описание |
| container | wreport | Контейнер для отчета. |
| q | Объект класса Wsql. | |
| template | Шаблон. | |
| pagelen | Количество строк на одной странице при постраничном выводе записей. | |
| grupfield | Первое группирующее поле. | |
| grupfield2 | Второе группирующее поле. | |
| grupfield3 | Третье группирующее поле. | |
| caption | Заголовок страницы. | |
| _caption_cells | array() | Дополнительные ячейки в области заголовка отчета. |
| mess | Сообщение, которое может быть напечатано в заголовке таблицы. | |
| mode | Режим. Если print- печать отчета с учетом параметров. | |
| cardurl | Url для карточки объекта. |
Описание методов
addHidden()
public function addHidden($name = '', $val = '')
Добавляет скрытое поле к отчету.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wreport.class.php');
$f = new wReport();
$f->q->select('objid', $parser->gt('id'));
$f->q->lselect('name', $parser->gt('name'));
$f->q->select('avatar', $parser->gt('avatar'));
$f->q->from('sys_objects');
$f->q->where("objid<>'0'");
$f->addHidden('name_hidden','value_hidden');
$f->show();
В результате работы этого примера в форме появляется дополнительный html-код:
addCell()
public function addCell($text = '', $align = '')
Добавляет дополнительную ячейку в заголовок отчета.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wreport.class.php');
$f = new wReport();
$f->q->select('objid', $parser->gt('id'));
$f->q->lselect('name', $parser->gt('name'));
$f->q->select('avatar', $parser->gt('avatar'));
$f->q->from('sys_objects');
$f->q->where("objid<>'0'");
$f->addCell('Textarea');
$f->show();
addCard()
public function addCard($col = 0, $idcol = 0, $url = '', $pars = '')
Добавляет карточку объекта к указанной колонке отчета. Пример добавления карточки объекта к колонке «Название».
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wreport.class.php');
$f = new wReport();
$f->q->select('objid', $parser->gt('id'));
$name_col = $f->q->lselect('name', $parser->gt('name'), array('func' => 'open_doccard'));
$f->q->select('avatar', $parser->gt('avatar'));
$f->q->from('sys_objects');
$f->q->where("objid<>'0'");
$f->addCard($name_col, 0, $parser->makeUrl('sys_object_form'));
$f->show();
addSection()
public function addSection($name = 'main')
Добавление секции для полей поиска. Секция отображается только в том случае, когда внутри нее есть параметры для поиска или поля поиска. Примеры использования см. в описаниях методов addSearchField() и addReportPar().
addSearchField()
public function addSearchField($section = 0, $name = '', $label = '', $pars = 'C')
Добавление поля поиска.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wreport.class.php');
$f = new wReport();
$f->q->select('objid', $parser->gt('id'));
$name_col = $f->q->lselect('name', $parser->gt('name'), array('func' => 'open_doccard'));
$f->q->select('avatar', $parser->gt('avatar'));
$f->q->from('sys_objects');
$f->q->where("objid<>'0'");
if($f->mode != 'print')
{
$sec = $f->addSection($parser->gt('main'));
$f->addSearchField($sec, 'creaton', $parser->gt('creaton'), 'D'); //Создан
$f->addSearchField($sec, 'description', $parser->gt('description'), 'C'); //Содержание
}
$f->show();
laddSearchField()
public function laddSearchField($name = '', $label = '')
Добавление поля поиска для мультиязычного поля.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wreport.class.php');
$f = new wReport();
$f->q->select('objid', $parser->gt('id'));
$name_col = $f->q->lselect('name', $parser->gt('name'), array('func' => 'open_doccard'));
$f->q->select('avatar', $parser->gt('avatar'));
$f->q->from('sys_objects');
$f->q->where("objid<>'0'");
if($f->mode != 'print')
{
$sec = $f->addSection($parser->gt('main'));
$f->laddSearchField('name', $parser->gt('name'));
}
$f->show();
addReportPar()
public function addReportPar($section = 0, $name = '', $label = '', $type = 'C', $val = '', $options = '')
Добавление параметров отчета.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wreport.class.php');
$f = new wReport();
$f->q->select('objid', $parser->gt('id'));
$name_col = $f->q->lselect('name', $parser->gt('name'), array('func' => 'open_doccard'));
$f->q->select('avatar', $parser->gt('avatar'));
$f->q->from('sys_objects');
$f->q->where("objid<>'0'");
if($f->mode != 'print')
{
$sec = $f->addSection($parser->gt('main'));
$f->addReportPar($sec, 'period', $parser->gt('period'), 'period', 0); //Период
$f->addReportPar($sec, 'grouping', $parser->gt('grouping'), 'select', 0, $parser->gt('sel_no', SYS_BASE_PATH.'main/classes').','.$parser->gt('owner')); //Группировка
}
$f->show();
show()
public function show()
Отображение отчета.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wreport.class.php');
$f = new wReport();
$f->q->select('objid', $parser->gt('id'));
$f->q->lselect('name', $parser->gt('name'), array('func' => 'open_doccard'));
$f->q->select('avatar', $parser->gt('avatar'));
$f->q->from('sys_objects');
$f->q->where("objid<>'0'");
$f->show();
makeCell()
public function makeCell($FieldName,&$CurrVal,&$CurrPrm,&$TBS)
Запись в ячейку отчета. Метод может переопределяться в дочерних классах.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wreport.class.php');
class wSubReport extends wReport {
public function makeCell($FieldName,&$CurrVal,&$CurrPrm,&$TBS){
//…
}
}
setFilterVal()
public function setFilterVal($i = 0, $val = '', $val2 = '', $oper = '')
Устанавливает значение фильтра. Служебный метод. Используется при отображении фильтров отчета.
getParams()
public function getParams()
Получение параметров отчета из сессионных переменных.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wreport.class.php');
$f = new wReport();
$f->q->select('objid', $parser->gt('id'));
$name_col = $f->q->lselect('name', $parser->gt('name'), array('func' => 'open_doccard'));
$f->q->select('avatar', $parser->gt('avatar'));
$f->q->from('sys_objects');
$f->q->where("objid<>'0'");
if($f->mode != 'print')
{
$sec = $f->addSection($parser->gt('main'));
$f->addReportPar($sec, 'period', $parser->gt('period'), 'period', 0); //Период
$f->addReportPar($sec, 'grouping', $parser->gt('grouping'), 'select', 0, $parser->gt('sel_no', SYS_BASE_PATH.'main/classes').','.$parser->gt('owner')); //Группировка
}
print_r($f->getParams());
$f->show();
getFilters()
public function getFilters()
Получение фильтров отчета из сессионных переменных.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wreport.class.php');
$f = new wReport();
$f->q->select('objid', $parser->gt('id'));
$name_col = $f->q->lselect('name', $parser->gt('name'), array('func' => 'open_doccard'));
$f->q->select('avatar', $parser->gt('avatar'));
$f->q->from('sys_objects');
$f->q->where("objid<>'0'");
if($f->mode != 'print')
{
$sec = $f->addSection($parser->gt('main'));
$f->addSearchField($sec, 'creaton', $parser->gt('creaton'), 'D'); //Создан
$f->addSearchField($sec, 'description', $parser->gt('description'), 'C'); //Содержание
}
print_r($f->getFilters());
$f->show();