У меня есть отчет (скажем, с идентификатором отчета 101010), сгенерированный через консоль, и он выводит следующие результаты:
+----------+-----+
| Category | NoI |
+----------+-----+
| C | 102 |
| A | 98 |
| E | 90 |
| D | 74 |
| B | 60 |
+----------+-----+
Когда я пытаюсь использовать тот же идентификатор отчета на странице CP через контроллер виджета, я получаю следующий результат:
+----------+-----+
| Category | NoI |
+----------+-----+
| D | 32 |
| A | 25 |
| B | 6 |
+----------+-----+
Вот код контроллера моего виджета:
function getData() {
$filters = array();
$format = array();
$report_id = $this->data['attrs']['report_id'];
echo $report_id; // this is printing 101010
$reportToken = \RightNow\Utils\Framework::createToken($report_id);
$report_data = $this->CI->model('Report')->getDataHTML(
$report_id, $reportToken, $filters, $format
);
print_r($report_data);
}
Так что я не могу понять, это:
$report_data
называется как per_page
и его ценность была 3. Это причина потянуть только первые 3 записи? Если да, как бы я увеличил это значение?После некоторого R&D, я думаю, я обнаружил, что причина изменения данных в том, что на CP данные извлекаются для инцидентов, вызванных только зарегистрированным пользователем, тогда как данные из консоли включают в себя инциденты, поднятые всеми.
Итак, как мне удалить встроенный фильтр, который добавляется в отчет?
Вы были более вероятны в результате при просмотре атрибута на странице. И модель отчета, и переменные виджеты реализуют этот атрибут. Сами аналитические отчеты осуществляют нумерацию страниц. Итак, либо в отчете по умолчанию установлена переменная страницы, равная трем, либо вы устанавливаете ее где-то еще (возможно, случайно). Смотрите, если изменение per_page
фильтр работает:
function getData() {
$filters = array('per_page' => 50);
$format = array();
$report_id = $this->data['attrs']['report_id'];
echo $report_id; // this is printing 101010
$reportToken = \RightNow\Utils\Framework::createToken($report_id);
$report_data = $this->CI->model('Report')->getDataHTML(
$report_id, $reportToken, $filters, $format
);
print_r($report_data);
}
В модели отчета есть строка, которая, вероятно, добавляет фильтр. Попробуйте удалить эту строку и посмотреть, что произойдет.
$searchArgs['search_field' . $index++] = $this->toFilterArray("$contactSessionAlias.c_id", OPER_EQ, " $contactID");