Добрый день!
После выполнения фильтра с помощью Condition по маркеру nrec ( condition fKat = FoundMarker(mMarkDoc, xxxx.ckatpodr ) при перемещении по отфильтрованным записям с помощью скроллинга мыши в browse просихдит задвоение , затроение записей. Попытка поставить rerecord по таблице на событии cmPositionChanged помогает, но замедляет систему в разы.
Господа, что посоветуете?
проблема скроллинга при использовании Condition c Маркером
Модераторы: m0p3e, edward_K, Модераторы
проблема скроллинга при использовании Condition c Маркером
I just shot John Lennon
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: проблема скроллинга при использовании Condition c Маркер
1. заменить condition на bounds c жесткой подцепкой по временой табле
2. rereadrecord круто, но тут хватит rescanpanel и лучше в cmIdle
3. и пишите в ТП с отправкой своего фейса - я знаю еще пару мест стандартных где повторяется также. Мож решат. Для себя я те места починил именно так.
2. rereadrecord круто, но тут хватит rescanpanel и лучше в cmIdle
3. и пишите в ТП с отправкой своего фейса - я знаю еще пару мест стандартных где повторяется также. Мож решат. Для себя я те места починил именно так.
Re: проблема скроллинга при использовании Condition c Маркер
Ага, нарывался на что-то подобное. Condition вообще странно иногда работает. Попробуй переписать вьюху:
Ну и наложением condition рули по _isFilter.
Код: Выделить всё
create view from table where (( root == table.nRec and ((not _isFilter) or FoundMarker(mMarkDoc, table.nRec)) ));
Re: проблема скроллинга при использовании Condition c Маркер
Дейстивтельно на примере c _filter все работает замечательно, если не с condition работать, а напряму в запрос. ТОлько немного притормаживает .. совсем немного, видимо из-за того что записей в спецификации больше 1000 и в интерфейсе перемещать тяжеловато.
По поводу cmIdle и Rescan- не помогло;(
С Временной таблицой помогло.. но если выборка больше 4 записей.. перемещение между записями идет рывками, притормаживанием через каждые 4 записи - это нормально? или я что=то не так делаю?
По поводу cmIdle и Rescan- не помогло;(
С Временной таблицой помогло.. но если выборка больше 4 записей.. перемещение между записями идет рывками, притормаживанием через каждые 4 записи - это нормально? или я что=то не так делаю?
I just shot John Lennon
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: проблема скроллинга при использовании Condition c Маркер
самый надежный вариант, который работает в кадрах и в зарплате, сделать главной временную таблу, а к ней подключить нужную.
Тогда точно дергаться не будет, но потеряете время на ее заполнении и кнопка обновить работать не будет. Но зато можно играться с сортировкой по колонкам.
Когда временная идет дочерней в ней должно быть только одно поле - nrec и подцеплять ее только к главной таблице фейса - все остальное будет приводить к рывкам.
Condition старайтесь избегать в принципе - лучше bounds со сложными условиями.
Тогда точно дергаться не будет, но потеряете время на ее заполнении и кнопка обновить работать не будет. Но зато можно играться с сортировкой по колонкам.
Когда временная идет дочерней в ней должно быть только одно поле - nrec и подцеплять ее только к главной таблице фейса - все остальное будет приводить к рывкам.
Condition старайтесь избегать в принципе - лучше bounds со сложными условиями.
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: проблема скроллинга при использовании Condition c Маркер
Вряд ли ты тут что то придумаешь - будет жесткая подцепка на корневую таблицу формата при большем объеме данных на некий фильтр (неважно на маркер, временную таблицу) то будет эффект рывков и скакания наблюдаться. Если фейс свой, а не стандартный, то можно попробовать работать через времянку : при наложении n-фильтров закидываешь записи в нее и активизируешь формат переключаемый в качестве корневой таблицы формата с этой времянкой. Снимаешь фильтры - отображаешь формат с физической таблицей. Придется, конечно, ЛОТ нарисовать поболее и с баундсами играться, работая с ними после изменения любого из фильтров , но зато юзвери скажут спасибо.beatlov писал(а):.. но если выборка больше 4 записей.. перемещение между записями идет рывками, притормаживанием через каждые 4 записи - это нормально? или я что=то не так делаю?
Re: проблема скроллинга при использовании Condition c Маркер
Господа, спасибо за ответы! все переделал на bounds, поиграл с индексами - все вылечилось и не тормозит!
I just shot John Lennon