Страница 1 из 1
Удаление записи из BROWSE
Добавлено: 22 Июль 2019, 15:39
Игорь Столяров
Привет всем !
Что-то я подвис, хотя вроде бы задача простая.
- Если удалять одну запись из BROWSE штатной операцией DELETE (из шаблона), то после удаления
список обновляется и засветка списка аккуратно становится на следующую запись.
- Если удалять запись вручную, с обновлением списка - то после удаления записи эту засветку непредсказуемо
кидает то на начало, то на хвост списка (видимо зависит от текущей сортировки).
Подскажите пжалуйста, как нужно обновлять список BROWSE после удаления записи, что бы он вёл себя пристойно ?
Заранее спасибо !

Удаление записи из BROWSE
Добавлено: 22 Июль 2019, 16:13
kreator
А как Вы удаляете вручную? По-моему SELF.ResetQueue(Reset:Queue) не должен приводить к таким последствиям. Во всяком случае, в класах SV так.
Удаление записи из BROWSE
Добавлено: 22 Июль 2019, 16:20
Игорь Столяров
Я удаляю конкретно !

Т.е. по нажатию кнопы выполняю DELETE(MyFile) и потом изменяю значение флага,
который есть в списке Reset Fields для BROWSE … может я здесь в чём-то был не прав ?
Удаление записи из BROWSE
Добавлено: 22 Июль 2019, 16:36
kreator
Зачем? Удаляете запись и выполняете:
Удаление записи из BROWSE
Добавлено: 22 Июль 2019, 16:51
Игорь Столяров
Неа ! Всё равно кидает засветку на верхнюю запись в списке.

Как я понимаю - нужно получать номер следующей записи в QUEUE списка и делать её текущей после удаления.
Только кто же её знает какая из них следующая …
Удаление записи из BROWSE
Добавлено: 22 Июль 2019, 16:59
kreator
Уберите Reset Field. Всё портит, похоже. Попробую тест у себя прогнать. Не верится. В классах именно так написано.
Удаление записи из BROWSE
Добавлено: 22 Июль 2019, 17:08
kreator
У меня вот так работает правильно:
Код: Выделить всё
get(BRW1.Q, choice(?List))
SPRAV.ID_SPR = BRW1.Q.SPR:ID_SPR
Relate:SPRAV.Delete()
BRW1.ResetQueue(Reset:Queue)
Удаление записи из BROWSE
Добавлено: 23 Июль 2019, 9:10
gopstop2007
тоже будет прыгать
самое оно )
Удаление записи из BROWSE
Добавлено: 23 Июль 2019, 9:24
Игорь Столяров
gopstop2007 писал(а): 23 Июль 2019, 9:10BRW1.ResetFromBuffer
Не, ну так это же совсем другое дело ! Спасибо ! Теперь всё правильно.

Удаление записи из BROWSE
Добавлено: 23 Июль 2019, 11:40
kreator
Почему у меня не прыгает? Из-за драйвера? Из-за сортировки? В ResetFromBuffer вот такое, правда:
Удаление записи из BROWSE
Добавлено: 23 Июль 2019, 12:15
Игорь Столяров
kreator писал(а): 23 Июль 2019, 11:40Почему у меня не прыгает?
У Вас же работа с SQL драйвером, а не ISAM ...
Удаление записи из BROWSE
Добавлено: 23 Июль 2019, 13:42
kreator
Игорь Столяров писал(а): 23 Июль 2019, 12:15
У Вас же работа с SQL драйвером, а не ISAM ...
И что? Скорее всего, есть какие-то отличия. Даже просто может быть в настройках броуза. Я, например, всегда использую "File Loading". Может сортировка виновата. У меня всегда используется уникальный ключ. Теоретически разница в поведении между ISAM и SQL должна быть.