Страница 1 из 1
					
				Быстрый поиск в Browse
				Добавлено: 26 май 2006, 11:01
				 Hello.World()
				Хочу, чтобы у меня в Browse был быстрый поиск, как, например, в картотеке сотрудников: набираем фамилию и курсор фокусируется. Знаю, что должно запускаться нечто обработчиком cmopensearch, но что? Помогите, плиз, кто сталкивался?
			 
			
					
				
				Добавлено: 26 май 2006, 11:54
				 поЧитатель
				Пример кода:
PANEL P;
   SHOW AT (,,,);
   TABLE KatMol;
BROWSE B;
FIELDS
    KatMol.Kod     '№ ' : [3],  ProTect, QuickChoice;
    KatMol.Name   'ФАМИЛИЯ' : [40],  ProTect, QuickChoice;
END;
HandleEvent
   ...
END;
			 
			
					
				
				Добавлено: 26 май 2006, 13:35
				 Hello.World()
				Т.е. достаточно добавить quickchoice к полям? Я так уже пробовал.
У меня не работает. Поле выделяется желтым, дальше этого не идет. При нажатии кнопок просто ничего не происходит.
			 
			
					
				
				Добавлено: 26 май 2006, 13:45
				 edward_K
				1. Быстрый поиск по индексным полям в browse и так будет работать без всяких дополнительных вещей
2. vipprogr.chm, поиск - QuickChoice - Объект быстрого выбора
в лом доку посмотерть? Там и примерчик есть.
			 
			
					
				
				Добавлено: 26 май 2006, 15:44
				 Hello.World()
				Не влом. Первым делом перелопатил доки. Пример там очень веселый, а я начинающий. 

 Да и в примере IMHO идет быстрый выбор в виде выпадающего списка из поля в Screen, а не быстрый поиск в Browse.
Ну вот мой код, простой как 3 рубля. Не получается. Помогите, у кого есть наглядный примерчик.
#include galnet.inc
end;
INTERFACE quickchoicetest 'Выбор сотрудника' (,,scQuickChoice) DOACCEPT,ESCCLOSE, CYAN;
  show at (1,1,50,15);
var
                sotr_nrec:comp;
create view t1
        var
                sotr_nrec:comp;
        as select
       persons.nrec,
       persons.tabnmb,
       persons.fio,
       catalogs.name from
                     catalogs,
                     persons (PERSBYFIO),
                     appointments
       where
                     ((appointments.person/==persons.nrec and
                     appointments.post/==catalogs.nrec)) and
                     persons.disdate='ДД/ММ/ГГГГ' and
                     isemployee='С' and
                     WADDWORD1=1 and
                     appointments.DISMISSDATE='ДД/ММ/ГГГГ';
browse UsersBrowse
  Fields
    persons.tabnmb 'Таб.номер': protect, QuickChoice;
    persons.fio 'ФИО' :protect, QuickChoice;
    catalogs.name 'Должность': protect, QuickChoice;
  end;
end.
 
			 
			
					
				
				Добавлено: 29 май 2006, 12:15
				 dp
				надо событие cmQuickchoise описать с реациями на ввод в разных полях - в доках тоже примеры есть
			 
			
					
				
				Добавлено: 30 май 2006, 15:24
				 поЧитатель
				У всех все работает. сейчас только проверил - РАБОТАЕТ  
INTERFACE quickchoicetest 'Выбор сотрудника' (,,) DOACCEPT,ESCCLOSE, CYAN;
show at (1,1,50,15);
var
sotr_nrec:comp;
create view t1
var
sotr_nrec:comp;
as select
persons.nrec,
persons.tabnmb,
persons.fio,
catalogs.name from
persons (PERSBYFIO),
catalogs,
appointments
where
((
    'С'               == persons.isemployee
and date(0,0,0)       == persons.disdate (noindex)
and 1                 == persons.WADDWORD1 (noindex)
and persons.nrec     /== appointments.person
and appointments.post == catalogs.nrec)) 
and (LongInt(appointments.DISMISSDATE)=0);
panel Userspanel
table persons;
browse UsersBrowse
Fields
persons.tabnmb 'Таб.номер': protect;// В этих колонках 
persons.fio 'ФИО' :protect;         // QuickChoice - и так сработает
catalogs.name 'Должность': protect; // В этой колонке  QuickChoice не сработает
end;
end;
end.
 
  
  
  
 
			 
			
					
				
				Добавлено: 31 май 2006, 11:21
				 Hello.World()
				[quote="поЧитатель"]У всех все работает. сейчас только проверил - РАБОТАЕТ  
УРА! Действительно работает! Единственное, у меня заругался на
and 1                 == persons.WADDWORD1 (noindex)
 
не узнает "persons.WADDWORD1". Заменил на просто WADDWORD1, прокатило.
Почему мой код не работает, пока не понял. Видимо, как-то не так построил запрос, хотя он и выдает то же, что у вас, только не сортирует и не ищет.
Спасибо, поЧитатель. 

 Спасибо всем.
 
			 
			
					
				
				Добавлено: 31 май 2006, 13:30
				 Max_Fin
				Все очень просто - persons должен быть корневой таблицей!
			 
			
					
				
				Добавлено: 05 июн 2006, 11:50
				 siteadmin
				выдумывать велосипед не стоит.
простой поиск по полям таблицы для любого визуального элемента работает только в том случае, если эта даблица, как прависльно сказал Максим - корневая для данного элемента. по полям же связанных таблиц поиск работать не будет.