Позиционирование записи при загрузке Browse и StartAtCurrent

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Позиционирование записи при загрузке Browse и StartAtCurrent

Сообщение kreator »

ABC. Есть форма на броузах (не на дропах и дропкомбо). Надо при её открытии позиционировать эти броузы на определённую запись. Как? Вроде есть свойство StartAtCurrent для этого. Но что-то не получается, делаю по хелпу. Что можно сделать?
We are hard at work… for you. :)
Аватара пользователя
ingasoftplus
Ветеран
Сообщения: 425
Зарегистрирован: 26 Декабрь 2006, 17:07
Откуда: Оттуда :)
Благодарил (а): 87 раз
Поблагодарили: 5 раз

Позиционирование записи при загрузке Browse и StartAtCurrent

Сообщение ingasoftplus »

чтобы это работало - надо сначала инициализоровать (взять) запись, а уж потом применять это свойство.

типа этого (где-то в Init процедуры ):

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

        ! Check for "Browse Priming" variable ...
  
          if GLO:PrimeBrowse <> ''
             clear(APR:Record)
             APR:Name       = GLO:PrimeBrowse
             set(APR:ByName,APR:ByName)
             next(ACCPROF)
             if errorcode()
                clear(APR:Record)
             .
             BRW1.StartAtCurrent = true
          .
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Позиционирование записи при загрузке Browse и StartAtCurrent

Сообщение kreator »

Я типа такого и делаю (как раз в Init броуза до "Parent Call"):

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

if wm.Request=ChangeRecord or wm.Request=ViewRecord
  ASP0:ID_SPR = DEF:VID
  Access:A0SPRAV.Fetch(ASP0:PrimaryKey)
  self.StartAtCurrent = True
end
Чего-то не хватает, видимо. Может быть не в том месте?
We are hard at work… for you. :)
Аватара пользователя
ingasoftplus
Ветеран
Сообщения: 425
Зарегистрирован: 26 Декабрь 2006, 17:07
Откуда: Оттуда :)
Благодарил (а): 87 раз
Поблагодарили: 5 раз

Позиционирование записи при загрузке Browse и StartAtCurrent

Сообщение ingasoftplus »

в INIT окна. после инициализации бровзов.
т.е. у меня явно BRW1.StartAtCurrent = true
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Позиционирование записи при загрузке Browse и StartAtCurrent

Сообщение Игорь Столяров »

Господа ! Всё очень правильно - но только в Ваших примерах должен быть включен режим SelectRecord.
А вообще, тема подробно разбиралась вот здесь: viewtopic.php?f=1&t=3606
И вот здесь: viewtopic.php?t=2525
Дежавю ? ;)
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Позиционирование записи при загрузке Browse и StartAtCurrent

Сообщение kreator »

Игорь Столяров писал(а): 11 Март 2022, 9:08 Дежавю ?
Возможно. Только устойчивого решения нет. Всё великолепно работает, если это окно с одним броузом, да ещё и в режиме SelectRecord.
Игорь Столяров писал(а): 11 Март 2022, 9:08 только в Ваших примерах должен быть включен режим SelectRecord.
Я как раз и уцепился за этот StartAtCurrent, потому что вроде как это свойство для этого. Если посмотреть метод BrowseClass.SetSort:

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

IF (SELF.Selecting OR SELF.StartAtCurrent) AND ~SELF.Loaded
, то это как раз замена SelectRecord.
И, да, у меня форма с множеством броузов.
ingasoftplus писал(а): 10 Март 2022, 15:35 в INIT окна. после инициализации бровзов.
т.е. у меня явно BRW1.StartAtCurrent = true
И, да, это не работает тоже. Увы.
Скорее всего причина в том, что у меня несколько броузов по одной таблице. Надо искать другие варианты.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Позиционирование записи при загрузке Browse и StartAtCurrent

Сообщение Игорь Столяров »

kreator писал(а): 11 Март 2022, 16:07 если это окно с одним броузом, да ещё и в режиме SelectRecord
Да. Именно так. Мы открываем список и сразу подсвечиваем ранее выбранное значение (запись).
И здесь никто не может сказать, что есть какие-то проблемы с логикой работы приложения ... ;)
kreator писал(а): 11 Март 2022, 16:07 что у меня несколько броузов по одной таблице
Технологически - это не проблема, ведь каждого BROWSE свой буфер VIEW.
Сложнее с событиями, точнее даже с последовательностью их обработки ...

Я бы рекомендовал попробовать сделать как в первой ссылке - попробуйте добавить
скрытую кнопку по нажатию которой выполняется задуманное Вами позицирование записей.
Если это в принципе работает - "нажимайте" эту кнопку по событию после открытия окна и всё. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Ответить