![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск как в 1С [D7, FB 1.5]
vvh © (2005-10-25 19:20:00)Здравствуйте Мастера! Есть необходимость сделать поиск как в 1С,
где то видел что это можно реализовать с помощью, TEdit и сообщений, но никак не получается. Не могу понять какое сообщение нужно послать строке ввода.Помогите, пожалуйста.
msguns (2005-10-26 09:35:00) [1]Поиск в 1С удобен лишь для контекстного поиска, но абсолютно неприемлим, если надо найти все записи, удовлетворяющие заданному критерию и показать их списком отдельно от грида (фильтр - это совсем не то). Да и поиск по нескольким колонкам или диапазону там реализован коряво.
syte_ser78 (2005-10-26 08:55:00) [2]YurikGL © (25.10.05 21:09) [13]
Удобно. А как выставить интервал между двумя различными запросами на поиск?
vvh (2005-10-25 21:17:00) [3]Понятно. Большое спасибо всем за помощь.
Но я нашел таки, то что хотел:
procedure TFrameListTeacher.DBGridEh1KeyPress(Sender: TObject;
var Key: Char);
begin
inherited;
dxEdit1.Visible:=True;
SendMessage(dxEdit1.Handle,WM_CHAR,Ord(Key),0);<-------это решило проблему
dxEdit1.SetFocus;
end
YurikGL (2005-10-25 21:09:00) [4]Убери едит....
Просто ehGrid подключенный к датасету
ReadOnly:=true
OptionsEH.dghPreferIncSearch:=true
встаешь курсором в колонку и начинаешь набирать текст... грид будет сам позиционировать курсор.
vvh (2005-10-25 21:02:00) [5]Установил, но все осталось по прежнему. Нажимаю клавишу, едит появился, но пустой.
YurikGL (2005-10-25 20:56:00) [6]
> vvh (25.10.05 20:54) [10]
Свойство EHGrid-а в инспекторе объекта...
Установи его в true
vvh (2005-10-25 20:54:00) [7]Что это за свойство? Как его найти?
YurikGL (2005-10-25 20:51:00) [8]Пользуй свойство OptionsEH.dghPreferIncSearch:=true
vvh (2005-10-25 20:23:00) [9]Вот что есть у меня, где сохранять:
procedure TFrameListTeacher.DBGridEh1KeyPress(Sender: TObject;
var Key: Char);
begin
inherited;
dxEdit1.Visible:=True;
dxEdit1.SetFocus;
end;
procedure TFrameListTeacher.dxEdit1KeyPress(Sender: TObject;
var Key: Char);
begin
inherited;
if Key=#13 then
begin
dxEdit1.Visible:=False;
DBGridEh1.SetFocus;
end;
end;
procedure TFrameListTeacher.dxEdit1Change(Sender: TObject);
begin
inherited;
if not fDM.tTeacher.Locate('FAMILY', dxEdit1.Text,[loCaseInsensitive, loPartialKey])
then messagebeep(0);
end;
Anatoly Podgoretsky (2005-10-25 20:17:00) [10]Ты их до помещения в поле, где то сохраняй, а потом копируй в поле.
vvh (2005-10-25 20:15:00) [11]Когда начинаю вводить буквы(цифры), поле ввода появляется, но пустое, надо вводить еще раз.
Anatoly Podgoretsky (2005-10-25 20:09:00) [12]Вот теперь понятно, а с чем у тебя проблема?
vvh (2005-10-25 19:59:00) [13]Подобный вопрос уже когда-то задавался, но по ссылке получил:
"Не найдена ветка № 1102411092, возможно она была удалена или перенесена в другой форум."
vvh (2005-10-25 19:56:00) [14]Я имею ввиду, когда мы начинаем набирать искомое, открывается поле ввода, куда копируется то что мы уже ввели
YurikGL (2005-10-25 19:48:00) [15]Наверное имеется в виду поиск документов, когда задается верхняя и нижняя границы диапазона поиска?
Для этого нужно разместить два календаря на форме и динамически составлять запрос в котором будут соответсвующие условия в секции where
Anatoly Podgoretsky (2005-10-25 19:40:00) [16]А как там поиск реализован