0
Голосовать

Ещё раз о фильтре по дате

Создано:
Метки записи:

Добрый день.

Создаю отчет. Добавляю ему фильтр по дате. Создал заспро к бд.
В отеделе скриптов одного из объектов tfrMemoView написал

Tasks.SQL := Tasks.SQL + IF(Filter='', '', ' WHERE ' + Filter);

где Tasks - объект-запрос к бд.

так вот всё это внутри дизайнера отчетов работает, а когда я вызываю это внешне (из раздела Услуги у меня) то отчет выдает эксепшн.

Подскажите, что не так.
Спасибо!

Комментарии

Кихтенко Андрей
_Misha пишет:
Добрый день.

Создаю отчет. Добавляю ему фильтр по дате. Создал заспро к бд.
В отеделе скриптов одного из объектов tfrMemoView написал

Tasks.SQL := Tasks.SQL + IF(Filter='', '', ' WHERE ' + Filter);

где Tasks - объект-запрос к бд.

так вот всё это внутри дизайнера отчетов работает, а когда я вызываю это внешне (из раздела Услуги у меня) то отчет выдает эксепшн.

Подскажите, что не так.
Спасибо!

А что за ошибка? Вы можете прислать ее полное описание в службу тех. поддержки?

Non noceo.

Вот такой эксепшн:
exception message : Tasks: Cannot perform this operation on a closed dataset.

Уже писали в тех. поддержку, но пока не ответили, потому пишу сюда вам.

Спасибо.

Кихтенко Андрей
_Misha пишет:
Вот такой эксепшн:
exception message : Tasks: Cannot perform this operation on a closed dataset.

Уже писали в тех. поддержку, но пока не ответили, потому пишу сюда вам.

Спасибо.

Попробуйте дописать в код Tasks.Open(); или Tasks.Active := true;

Non noceo.

Нет, это только добавляет новых проблем.

Скажите, а может можно применить существующий фильтр как-то по-другому? Вот не понятно как работает отчет "Задачи по менеджерам", там тоже есть фильтры по датам но ничего подобного

Tasks.SQL := Tasks.SQL + IF(Filter='', '', ' WHERE ' + Filter);

в скрипте не пишется.. это как так?

Спасибо.

Кихтенко Андрей
_Misha пишет:
Нет, это только добавляет новых проблем.

Скажите, а может можно применить существующий фильтр как-то по-другому? Вот не понятно как работает отчет "Задачи по менеджерам", там тоже есть фильтры по датам но ничего подобного

Tasks.SQL := Tasks.SQL + IF(Filter='', '', ' WHERE ' + Filter);

в скрипте не пишется.. это как так?

Спасибо.

Кликните дважды на диалоговую форму отчета. Разве там нет обработки фильтра?

Non noceo.