Добрый день,
Я меня проблема с классом-методом: CFormResult::GetList
Есть следующее: веб-форма, результаты которой нужно вывести, у которой есть поле RPD_SMONAME. оно представляет из себя выбор один из многих и имеет в answer_value идентификаторы выбора, а в answer_text - наименования.
Требуется отобразить только те записи, в которых ответ на вопрос в форме равен указанному значению.
Проблема в том, что этот метод упорно игнорирует секцию FIELDS в фильтре
[CODE]$sectionId = 24005;
CModule::IncludeModule ( "form" );
$filter = array(
'FIELDS' => array(
array(
'SID' => 'RPD_SMONAME',
'FILTER_TYPE' => 'integer',
'PARAMETER_NAME' => 'ANSWER_VALUE',
'VALUE' => $sectionId,
"EXACT_MATCH" => "Y"
)
)
);
echo "<pre>";
print_r($filter); //*1
echo "</pre>";
$res = CFormResult::GetList(12, $by = "s_timestamp", $order = "desc", $filter, &$is_filtered);
var_dump($is_filtered); // *2
$result = array();
$res->navStart(30);
// ниже идет простой вывод этой самой таблички, его нет смысла тут размещать
[/CODE]В месте *1 отражается такое:
[CODE]Array
(
[FIELDS] => Array
(
[0] => Array
(
[SID] => RPD_COMMENT
[FILTER_TYPE] => integer
[PARAMETER_NAME] => ANSWER_TEXT
[VALUE] => 24005
[EXACT_MATCH] => Y
)
)
)
[/CODE]А в *2 такое:
[CODE]bool(false)[/CODE]При этом в результирующей таблице есть записи с RPD_SMONAME = 24001, 24002 и т.д. т.е. фильтрации не происходит.
Уже второй день бьюсь.. Подскажите плиз где может быть ошибка?
Я меня проблема с классом-методом: CFormResult::GetList
Есть следующее: веб-форма, результаты которой нужно вывести, у которой есть поле RPD_SMONAME. оно представляет из себя выбор один из многих и имеет в answer_value идентификаторы выбора, а в answer_text - наименования.
Требуется отобразить только те записи, в которых ответ на вопрос в форме равен указанному значению.
Проблема в том, что этот метод упорно игнорирует секцию FIELDS в фильтре
[CODE]$sectionId = 24005;
CModule::IncludeModule ( "form" );
$filter = array(
'FIELDS' => array(
array(
'SID' => 'RPD_SMONAME',
'FILTER_TYPE' => 'integer',
'PARAMETER_NAME' => 'ANSWER_VALUE',
'VALUE' => $sectionId,
"EXACT_MATCH" => "Y"
)
)
);
echo "<pre>";
print_r($filter); //*1
echo "</pre>";
$res = CFormResult::GetList(12, $by = "s_timestamp", $order = "desc", $filter, &$is_filtered);
var_dump($is_filtered); // *2
$result = array();
$res->navStart(30);
// ниже идет простой вывод этой самой таблички, его нет смысла тут размещать
[/CODE]В месте *1 отражается такое:
[CODE]Array
(
[FIELDS] => Array
(
[0] => Array
(
[SID] => RPD_COMMENT
[FILTER_TYPE] => integer
[PARAMETER_NAME] => ANSWER_TEXT
[VALUE] => 24005
[EXACT_MATCH] => Y
)
)
)
[/CODE]А в *2 такое:
[CODE]bool(false)[/CODE]При этом в результирующей таблице есть записи с RPD_SMONAME = 24001, 24002 и т.д. т.е. фильтрации не происходит.
Уже второй день бьюсь.. Подскажите плиз где может быть ошибка?