Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск как в 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]

А как там поиск реализован


Наверх

Титульная страница Поиск, карта сайта Написать письмо