Страница 1 из 1

FilterLocatorClass реинициализация

Добавлено: 04 Апрель 2014, 16:16
Андрей
Прошу подсказать как делать реинициализацию в FilterLocatorClass .
В броузе картотеки сделаны 2 таба - один по ФИО, другой по дате рождения с FilterLocatorClass, локатором выступает некое поле l:DR (лок. переменная)
Есть такая неприятность, если задать значение локатора l:DR несуществующее в таблице, то кроме того, что броуз становится пустым еще и очищается и делается Disable сам локатор.
Как иницизилизировать заново ? А то приходится например переходом в другой TAB и возвратом. Пытался повесить рядом с локатором кнопочку для этого дела, но не могу подобрать обработку.
Пока вот что есть:

Код: Выделить всё

    OF ?BUTTON1
      l:DR=0
      BRW1::Sort1:Locator.Init(?l:DR,Peo:DR,1,BRW1)
      ThisWindow.Reset(1)
Но, приходится жать 2 раза - первый раз Локатор очищается, на второй инициализация проходит
В общем некрасиво работает

Re: FilterLocatorClass реинициализация

Добавлено: 04 Апрель 2014, 16:26
kreator
Backspace'ом всё возвращается взад.

Re: FilterLocatorClass реинициализация

Добавлено: 04 Апрель 2014, 16:56
Андрей
Ну да, как бы обычно не нужно использовать отдельного поля для локатора, вешаешь String на поле-локатор и вперед. Но с датой такое не прокатывает, я по-крайней мере не смог добиться.
Поэтому дата рождения забивается в отдельном поле-локаторе l:DR, а сам локатор - фильтрующий - очень удобно ! Но до тех пор пока пользователь не введет несуществующее значение, вот тогда и .... см. выше

Re: FilterLocatorClass реинициализация

Добавлено: 04 Апрель 2014, 16:57
kreator
Backspace'ом всё возвращается взад. Не разобрался сначала, что filtered.

Re: FilterLocatorClass реинициализация

Добавлено: 04 Апрель 2014, 17:00
Андрей
Почему то не возвращается, вернее раза 4 или 5 надо нажать

Re: FilterLocatorClass реинициализация

Добавлено: 04 Апрель 2014, 17:21
kreator
Backspace убирает по одной букве. И когда в броузе что-нибудь появляется (есть записи), тогда локатор подсвечивается. Картинку проблемы покажи.

Re: FilterLocatorClass реинициализация

Добавлено: 04 Апрель 2014, 22:00
Андрей
Вероятно Backspace неправильно отрабатывает в случае локатора по дате

Ввожу например 14.05.1996 такого человека не нашлось - локатор disabled
Жму Backspace - на локаторе 12.07.1820, еще раз - 11.12.1802

Re: FilterLocatorClass реинициализация

Добавлено: 05 Апрель 2014, 16:07
kreator
Я так подумал - filtered ведь для стринговых полей. Зачем дату туда пихать. Используй обычный фильтр. Я, если нужно отобрать по дате, то ставлю две локальных переменных ("с" и "по") и либо обычный фильтр либо по индексу отбор. Короче, смысла в локаторе в данном случае нет, пользователь только путаться будет.