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

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Андрей
Старожил
Сообщения: 277
Зарегистрирован: 30 Октябрь 2005, 3:58

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

Сообщение Андрей »

Прошу подсказать как делать реинициализацию в 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 раза - первый раз Локатор очищается, на второй инициализация проходит
В общем некрасиво работает
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

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

Сообщение kreator »

Backspace'ом всё возвращается взад.
Последний раз редактировалось kreator 04 Апрель 2014, 16:56, всего редактировалось 1 раз.
We are hard at work… for you. :)
Андрей
Старожил
Сообщения: 277
Зарегистрирован: 30 Октябрь 2005, 3:58

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

Сообщение Андрей »

Ну да, как бы обычно не нужно использовать отдельного поля для локатора, вешаешь String на поле-локатор и вперед. Но с датой такое не прокатывает, я по-крайней мере не смог добиться.
Поэтому дата рождения забивается в отдельном поле-локаторе l:DR, а сам локатор - фильтрующий - очень удобно ! Но до тех пор пока пользователь не введет несуществующее значение, вот тогда и .... см. выше
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

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

Сообщение kreator »

Backspace'ом всё возвращается взад. Не разобрался сначала, что filtered.
We are hard at work… for you. :)
Андрей
Старожил
Сообщения: 277
Зарегистрирован: 30 Октябрь 2005, 3:58

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

Сообщение Андрей »

Почему то не возвращается, вернее раза 4 или 5 надо нажать
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

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

Сообщение kreator »

Backspace убирает по одной букве. И когда в броузе что-нибудь появляется (есть записи), тогда локатор подсвечивается. Картинку проблемы покажи.
We are hard at work… for you. :)
Андрей
Старожил
Сообщения: 277
Зарегистрирован: 30 Октябрь 2005, 3:58

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

Сообщение Андрей »

Вероятно Backspace неправильно отрабатывает в случае локатора по дате

Ввожу например 14.05.1996 такого человека не нашлось - локатор disabled
Жму Backspace - на локаторе 12.07.1820, еще раз - 11.12.1802
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

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

Сообщение kreator »

Я так подумал - filtered ведь для стринговых полей. Зачем дату туда пихать. Используй обычный фильтр. Я, если нужно отобрать по дате, то ставлю две локальных переменных ("с" и "по") и либо обычный фильтр либо по индексу отбор. Короче, смысла в локаторе в данном случае нет, пользователь только путаться будет.
We are hard at work… for you. :)
Ответить