Класс 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();