Подвисание Browse

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

Подвисание Browse

Сообщение Алексей- Софт-Центр »

Добрый день!
Кларион 6, АВС, TPS.

В обычном BRowse, стоит фильтр в Embed, типа:
if kkk=1 then
if ~KLI:dataK<=today() or KLI:dataK=0 then ! KLI:dataK - LONG
returnvalue=5
return returnvalue
end
end
! KKK- check box
При обработке которого стоит:
brw2.resetfrombuffer()

Все работает, но при включенном ККК происходит "подвисание" (достаточно долгая обработка) скроллинга мышью:
вверх - если стоим на первой записи Browse
или
вниз - если стоим на последней записи Browse

Самое неприятное: время подвисания возростает на несколько порядков, когда база не на своем компе!

Алексей
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Re: Подвисание Browse

Сообщение kreator »

А KLI:DataK в очереди? Если нет - идет обращение к диску.
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Подвисание Browse

Сообщение Admin »

kreator писал(а):А KLI:DataK в очереди? Если нет - идет обращение к диску.
В таком случае при kkk=0 тормозило бы точно так же, т.к. обращение к переменной не есть обращение к диску.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Подвисание Browse

Сообщение Admin »

Алексей- Софт-Центр писал(а):Все работает, но при включенном ККК происходит "подвисание" (достаточно долгая обработка)
Тупо повторил код - все просто летает.
Не хватает данных для реализации такого эффекта, ключи, сортировки, размер базы, доп. фильтры и т.д.
Нужен реальный пример который тупит, лучше тестовый APP+DCT с TPS таблицей.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

Re: Подвисание Browse

Сообщение Алексей- Софт-Центр »

Размер базы - 4000 записей
Все поля, участвующие в сравнении - в списке брозера.
Самое интересное, что в этом ембеде - стоит 3 проверки трех разных полей. По двум торможения нет, как только включаю третью - тормоз
Я понимаю, что так на словах - трудно воспринять проблему.
Поэтому :
могу подключить к своему рабочему столу через teamviewer, чтобы не писать пример.


Алексей
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

Re: Подвисание Browse

Сообщение Алексей- Софт-Центр »

Сделал попытку сформировать фильтр таким образом:
BRW2::View:Browse{prop:filter}='KLI:dataK>TD or ~KLI:dataK=0 '
brw2.resetfrombuffer()
Воткнул это в кнопку. Но при исполнении данного фрагмента - ничего не происходит (броуз не фильтруется)
или это с TPS не работает? или не для АВС ?
Кто-нибудь пробовал такую конструкцию?


Алексей
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Подвисание Browse

Сообщение Admin »

Если такой маленький объем данных, предложу все таки сделать отдельную апликаху с бровзом и в нем проэмулировать глюк.
Далее выложить здесь на форуме. Тогда будем посмотреть... а так что то говорить трудно.
PROP:Filter не пользовался.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Подвисание Browse

Сообщение Admin »

Тут с Андреем ПОповым поспорили чутка. Он оказался прав а я заблуждался.
100% все в правильном индексе...
Когда ты включаешь галку у тебя перебираются все записи твоей таблицы до заполнения бровза.
Наверняка на бровзе стоит загрузка постраничная...

Короче вывод: правильный ключ использовать... или переделать ключ (добавив дату) или по ключу по дате выборки делать а потом сортировать по "Aditional sort fields" (как то так...)

Как Андрей мне правильно сказал... мы уже забыли как с TPS работать... и оперируем в связи с другими задачами и с SQL гораздо большими объемами... на порядки. Без всякого гемороя (почти)

Чего и Вам желаем.

Спасибо.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

Re: Подвисание Browse

Сообщение Алексей- Софт-Центр »

Вышел из положения следующим образом:
BRW2.SetSort(2)
BRW2.SetFilter('(KLI:dataK<=TD and ~KLI:dataK=0)')
brw2.resetfrombuffer()

Будет время - напишу маленькую прогу по этому случаю для исследования.
Хотя вопрос с prop filter остался (ради любопытства, ну и дальнейшего использования)

Алексей
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Подвисание Browse

Сообщение Admin »

Алексей- Софт-Центр писал(а):BRW2.SetSort(2)
тут сортировка отличная от BRW2.SetSort(1) ?
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

Re: Подвисание Browse

Сообщение Алексей- Софт-Центр »

Да.
Броус имеет 7 табов. У каждого таба свой ключ.
3-ий таб имеет ключ по дате. (В сорте он 2).
Причем эта конструкция работает только на одной закладке (где таб по дате).
Пришлось перед эти давать select(?tab3)


Алексей
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Подвисание Browse

Сообщение Admin »

Алексей- Софт-Центр писал(а):3-ий таб имеет ключ по дате. (В сорте он 2).
Ну теперь все понятно...
Как я уже писал:
Короче вывод: правильный ключ использовать... или переделать ключ (добавив дату) или по ключу по дате выборки делать а потом сортировать по "Aditional sort fields" (как то так...)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

Re: Подвисание Browse

Сообщение Алексей- Софт-Центр »

В принципе тема закрыта, но остался вопрос (на будущее)
BRW2::View:Browse{prop:filter}='KLI:dataK>TD or ~KLI:dataK=0 '
brw2.resetfrombuffer()
Почему не работает эта конструкция?


Алексей
Ответить