- Модуль: report
- Путь к файлу: ~/bitrix/modules/report/lib/visualconstructor/handler/basereport.php
- Класс: BitrixReportVisualConstructorHandlerBaseReport
- Вызов: BaseReport::getReportHandlerSelectField
private function getReportHandlerSelectField($categoryKey = '__')
{
$selectField = new CustomDropDown('reportHandler');
$selectField->addDataAttribute('field-type', 'report-handler-class');
$selectField->setLabel(Loc::getMessage('SELECT_DATA_PROVIDER'));
$selectField->addJsEventListener($selectField, $selectField::JS_EVENT_ON_CHANGE, array(
'class' => 'BX.Report.VisualConstructor.FieldEventHandlers.ReportHandlerSelect',
'action' => 'reportHandlerSelected',
));
$selectField->addAssets(array(
'js' => array('/bitrix/js/report/js/visualconstructor/fields/reporthandlerselect.js')
));
$reports = new ReportProvider();
$reports->addFilter('dataType', $this->getView()->getCompatibleDataType());
if (!empty($categoryKey) && $categoryKey !== '__')
{
$reports->addFilter('categories', array($categoryKey));
}
$reports->execute();
/** @var BaseReport[] $reportHandlers */
$reportHandlers = $reports->getResults();
foreach ($reportHandlers as $report)
{
$selectField->addOption($report::getClassName(), $report->getTitle());
}
$selectField->setDefaultValue($this::getClassName());
return $selectField;
}