Быстрый поиск в Browse

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Hello.World()
Сообщения: 6
Зарегистрирован: 26 май 2006, 10:37

Быстрый поиск в Browse

Сообщение Hello.World() »

Хочу, чтобы у меня в Browse был быстрый поиск, как, например, в картотеке сотрудников: набираем фамилию и курсор фокусируется. Знаю, что должно запускаться нечто обработчиком cmopensearch, но что? Помогите, плиз, кто сталкивался?
поЧитатель
Посетитель
Сообщения: 44
Зарегистрирован: 27 янв 2006, 14:21

Сообщение поЧитатель »

Пример кода:

PANEL P;
SHOW AT (,,,);
TABLE KatMol;
BROWSE B;
FIELDS
KatMol.Kod '№ ' : [3], ProTect, QuickChoice;
KatMol.Name 'ФАМИЛИЯ' : [40], ProTect, QuickChoice;
END;
HandleEvent
...
END;
Hello.World()
Сообщения: 6
Зарегистрирован: 26 май 2006, 10:37

Сообщение Hello.World() »

Т.е. достаточно добавить quickchoice к полям? Я так уже пробовал.
У меня не работает. Поле выделяется желтым, дальше этого не идет. При нажатии кнопок просто ничего не происходит.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

1. Быстрый поиск по индексным полям в browse и так будет работать без всяких дополнительных вещей
2. vipprogr.chm, поиск - QuickChoice - Объект быстрого выбора
в лом доку посмотерть? Там и примерчик есть.
Hello.World()
Сообщения: 6
Зарегистрирован: 26 май 2006, 10:37

Сообщение 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.
dp
Местный житель
Сообщения: 216
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Беларусь, Минск
Контактная информация:

Сообщение dp »

надо событие cmQuickchoise описать с реациями на ввод в разных полях - в доках тоже примеры есть
dP
поЧитатель
Посетитель
Сообщения: 44
Зарегистрирован: 27 янв 2006, 14:21

Сообщение поЧитатель »

У всех все работает. сейчас только проверил - РАБОТАЕТ

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.

:-D :-D :-D :-D
Hello.World()
Сообщения: 6
Зарегистрирован: 26 май 2006, 10:37

Сообщение Hello.World() »

[quote="поЧитатель"]У всех все работает. сейчас только проверил - РАБОТАЕТ

УРА! Действительно работает! Единственное, у меня заругался на

and 1 == persons.WADDWORD1 (noindex)

не узнает "persons.WADDWORD1". Заменил на просто WADDWORD1, прокатило.
Почему мой код не работает, пока не понял. Видимо, как-то не так построил запрос, хотя он и выдает то же, что у вас, только не сортирует и не ищет.

Спасибо, поЧитатель. :-) Спасибо всем.
Max_Fin
На пенсии
Сообщения: 797
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г. Тюмень
Контактная информация:

Сообщение Max_Fin »

Все очень просто - persons должен быть корневой таблицей!
Жду выхода Вселенная 2.12!
siteadmin
Site Admin
Сообщения: 38
Зарегистрирован: 26 апр 2005, 17:33

Сообщение siteadmin »

выдумывать велосипед не стоит.
простой поиск по полям таблицы для любого визуального элемента работает только в том случае, если эта даблица, как прависльно сказал Максим - корневая для данного элемента. по полям же связанных таблиц поиск работать не будет.
Ответить