Отчет с параметрами – это динамически создаваемый отчет. Перед отображением данных необходимо в соответствующих полях выбрать параметры выбора и далее нажать на одну из трех кнопок в правом углу страницы:
Пример построения отчета с параметрами (фильтрами):
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wreport.class.php');
$w = new wReport();
if($w->mode != 'print')
{
// Show report filters
$sec = $w->addSection($parser->gt('main'));
$w->addReportPar($sec, 'period', $parser->gt('period'), 'period', 0);
$w->addReportPar($sec, 'grouping', $parser->gt('grouping'), 'select', 1, $parser->gt('sel_no', SYS_BASE_PATH.'main/classes').','.$parser->gt('grobjtype', __FILE__));
$sec = $w->addSection($parser->gt('more'));
$w->addSearchField($sec, 'o.name', $parser->gt('name'), array('lang' => 1, 'type' => 'C'));
$w->addSearchField($sec, 'o.objtype', $parser->gt('objtype'), 'sys_objtypes');
$w->addSearchField($sec, 'o.isprivate', $parser->gt('isprivate'), 'L');
$w->addSearchField($sec, 'o.flt1', $parser->gt('total'), 'F');
$w->show();
return;
}
// Print report
$pars = $w->getParams();
$from = ($pars['period1']) ? $parser->conn->DBDate($parser->utils->dateToISOformat($pars['period1'])) : '';
$to = ($pars['period2']) ? $parser->conn->DBDate($parser->utils->dateToISOformat($pars['period2'])) : '';
$w->q->select('o.objid', $parser->gt('id'));
$w->q->lselect('o.name AS oname', $parser->gt('name'));
$w->q->lselect('t.name AS tname', $parser->gt('objtype'));
$w->q->select('o.avatar', $parser->gt('avatar'));
$w->q->select('o.flt1', $parser->gt('total'));
$w->q->from('sys_objects o');
$w->q->from('sys_objtypes t');
$w->q->where("o.objid<>'0'");
$w->q->where("o.objtype=t.objtype");
$w->q->extra_where($w->getFilters());
if($from) $w->q->where("o.creaton>=".$from);
if($to) $w->q->where("o.creaton<=".$to);
switch($pars['grouping'])
{
case 0:
break;
case 1:
$w->template = SYS_BASE_PATH.'main/styles/reporter_tpl/tbsgroup1.htm';
$w->q->orderby('tname');
$w->pagelen = 30;
$w->grupfield= 'tname';
break;
}
$w->q->orderby('oname');
$w->show();