Построитель фильтров для отчета

Требуется передать значения фильтров в отчет. Хотелось не перебирать операторы сравнения с помощью отладчика. В SDK нашел перечисление, вроде подходящее - Перечисление _DateTimeOperatorTypeEnum. Дай думаю проверю на нескольких данных. Поставил оператор сравнения в фильтре «Прошлый год». Получил в отладчике fbcMain.DataFieldsList.Items(0).CompareOperator = 17. И что имеем в SDK dotLastYear = 17, и dotLastYear = «В течение года до текущей даты». В связи с этим вопрос – а можно ли доверять так рекламируемому SDK. Кстати точный перевод Last Year это Прошлый год. Остальные значения можно определить только тупым перебором? (типы поля сравнения и к нему операторы сравнения).
Дальше оказалось еще интереснее. При исследовании (тупым перебором) установки для поля типа Справочник выяснилось, что при установке «Пусто», «Не пусто» и «Текущий контакт» окно выбора фильтров само сбрасывает установку на «Пусто» после формирования отчета и выяснить CompareOperator не представляется возможным! Уже боюсь копать дальше.

Пытаемся Строить отчет:

После нажатия ОК имеем:

Это нормально?

Нравится

11 комментариев

Владимир, как устанавливаете значения для условий фильтрации окна?

Щелкаю левой кнопкой мышки по знаку и в низпадающем списке по "Не пусто". Поле этого по кнопке ОК. Есть другие варианты?

Другие варианты есть - на уровне скриптовой логики.
Проверяла на версиях 3.3.2 - 3.4.1, работает корректно.
На какой версии и сборке у Вас воспроизводится такое поведение (и уточните, пожалуйста, доп. информацию для воспроизведения)?

Версия 3.2.0.81

Уважаемая, Наталия, поделитесь как можно "на уровне скриптовой логики" узнать какой оператор установлен пользователем в фильтре. Буду очень признателен. (и конечно очень хочется узнать как можно этот самый оператор установить)

Попробовал на версии 3.4.0.50
fbcMain.DataFieldsList.Items(i).CompareOperator кроме "<>" все остальные ноль. Но хоть не сбрасывает. Хотя это мне не поможет, так как работаем на старой версии.

"Прищепа Владимир" написал:Уважаемая, Наталия, поделитесь как можно "на уровне скриптовой логики" узнать какой оператор установлен пользователем в фильтре. Буду очень признателен. (и конечно очень хочется узнать как можно этот самый оператор установить)

Владимир, смотрите в сторону скрипта wnd_ReportFiltersScript, функция LoadFilters (может быть полезной статья http://www.community.terrasoft.ru/forum/topic/7477)

Воспроизвела на версии 3.2.0 сбрасывание оператора сравнения - вопрос передан в департамент разработки.

Уважаемая, Наталия, а департамент разработки не может поделиться информацией как "на уровне скриптовой логики" узнать какой оператор установлен пользователем в фильтре. Буду очень признателен и Вам и департаменту разработки. (и, как обычно, очень хочется узнать как можно этот самый оператор установить)

Владимир, а Наталья дала вам ссылку с примером
А я добавлю ссылку на SDK
http://terrasoft.ru/sdk/index.html?frmname=topic&frmfile=MEMBEROVERVIEW…

"Бондарь Наталия" написал:Воспроизвела на версии 3.2.0 сбрасывание оператора сравнения - вопрос передан в департамент разработки.

Владимир, исправления внесены в сборку 3.2.0.89, обратитесь, пожалуйста, в техническую поддержку для ее получения.

Показать все комментарии