У меня вопрос.
CW6.3, ABC
Как в стандартном Browse со стандартным Entry-локатором установить последний в значение, заданное ему программно.
Например, есть переменная Entry-локатора loc:loc:Date. Пользователь выбирает из календаря дату и заносит выбранное значение в эту переменную. И... ничего не происходит.
BRWх::Sort0:Locator.Set - не помогает.
Что не так? Чего не хватает?
Кстати, какова роль процедуры BRWх::Sort0:Locator.SetShadow()? Обычно использую её при программном обнулении локатора: BRWx::Sort0:Locator.SetShadow(''). Пробовал для решения выше описанной задачи применить BRWх::Sort0:Locator.SetShadow(loc:loc:Date) - не сработало....
Установить локатор Browse программно
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Установить локатор Browse программно
Shadow - копия поля БД для поиска. Если мы ищем по полю ?Person:Name, нам не надо, чтобы портилось поле на экране и в таблице базы данных, поэтому поле локатора на экране связано именно с Shadow.
Может быть, SetShadow надо передавать в строковом виде ( SetShadow(Format(Loc:Loc:Date,'@d5') ) ?
Или попробовать ручками занести значение в поле на экране
Change(?File:Date:Locator,Format(Loc:Loc:Date,'@d5'))
?File:Date:Locator{PROP:Touched} = TRUE
Post(Event:Accepted, ?file:Date:Locator) ! Или игры с Press-PressKey, но у меня Punto обиделся...
И, возможно, перерисовать Browse
Brw1.ResetQueue(Reset:Queue)
Может быть, SetShadow надо передавать в строковом виде ( SetShadow(Format(Loc:Loc:Date,'@d5') ) ?
Или попробовать ручками занести значение в поле на экране
Change(?File:Date:Locator,Format(Loc:Loc:Date,'@d5'))
?File:Date:Locator{PROP:Touched} = TRUE
Post(Event:Accepted, ?file:Date:Locator) ! Или игры с Press-PressKey, но у меня Punto обиделся...
И, возможно, перерисовать Browse
Brw1.ResetQueue(Reset:Queue)
-
- ✯ Ветеран ✯
- Сообщения: 4990
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Установить локатор Browse программно
NewUser, посмотри, что классы пихают в Shadow. Мне тоже кажется, что надо с форматом поиграться. Либо руками можно сделать обращение в очередь броуза. Так даже быстрее будет.
We are hard at work… for you.
-
- Старожил
- Сообщения: 226
- Зарегистрирован: 10 Ноябрь 2005, 23:07
- Откуда: Краснодар
- Благодарил (а): 4 раза
Установить локатор Browse программно
Сработала следующая последовательность:
Большое спасибо за то, что откликнулись!
Код: Выделить всё
BRWx::Sort0:Locator.SetShadow(loc:loc:Date)
?loc:loc:Date{PROP:Touched} = TRUE
Post(Event:Accepted, ?loc:loc:Date)