и еще раз о фильтрах...
Модератор: Дед Пахом
					Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
	При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
и еще раз о фильтрах...
Здравствуйте. CW6.3, ABC,Стандартный browse, Range Limit Type = Range Of Values, штатный фильтр CommonFilter()=1 (прототип - (),string)  - довольно сложная функция, много чего перебирает, пока выдаёт результат. Проблема в следующем: если возвращаю высчитанное реальное значение (true, false), то очень сильно возрастает время выполнеия (в 8-10 раз) по сравнению с вариантом, когда после всех расчетов из  CommonFilter() насильно возвращаю true. То есть, если  время, потраченное на вычисления условия фильтрации не существенно, тогда где собственно прячется задержка?
			
			
									
						C уважением, Александр Т.
			
						- Дед Пахом
 - Старичок
 - Сообщения: 3346
 - Зарегистрирован: 07 Июль 2005, 16:51
 - Откуда: Москва, Россия
 - Благодарил (а): 20 раз
 - Поблагодарили: 56 раз
 - Контактная информация:
 
Re: и еще раз о фильтрах...
скорее всего это шутки оптимизирующего компилятора - он видит, что вычисляй, не вычисляй, всё равно функция вернёт true, ну и не вычисляет ничего.
Но это только предположение.
			
			
									
						Но это только предположение.
С уважением, ДП
			
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
Re: и еще раз о фильтрах...
Да, я тоже с этим согласен. Попробуй добавить в алгоритм работы фильтра, например BEEP и посмотреть
(точнее послушать
 ) работает ли он если функция все равно насильно возвращает TRUE.
			
			
									
						(точнее послушать
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						Re: и еще раз о фильтрах...
Есть предложение попробовать трассировку драйвера. Недавно был случай, когда используется и Range Limit и Filter как выяснилось позже одно поле из фильтра попадало в другой (неиспользуемый в данном Browse) ключ, с виду благопристойная комбинация вызывает непонятное дергание по другому ключу, при трассировке просто зайти-выйти из Browsе образовался лог примерно метров на 5. После того как поменял структуру ключей, глюк пропал. Clarion 6.3 ABC.
			
			
									
						