Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

Поиск как в 1С   Найти похожие ветки 

 
vvh   (2005-10-25 19:20) [0]

Здравствуйте Мастера! Есть необходимость сделать поиск как в 1С,
где то видел что это можно реализовать с помощью, TEdit и сообщений, но никак не получается. Не могу понять какое сообщение нужно послать строке ввода.Помогите, пожалуйста.


 
Anatoly Podgoretsky ©   (2005-10-25 19:40) [1]

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


 
YurikGL ©   (2005-10-25 19:48) [2]

Наверное имеется в виду поиск документов, когда задается верхняя и нижняя границы диапазона поиска?
Для этого нужно разместить два календаря на форме и динамически составлять запрос в котором будут соответсвующие условия в секции where


 
vvh   (2005-10-25 19:56) [3]

Я имею ввиду, когда мы начинаем набирать искомое, открывается поле ввода, куда копируется то что мы уже ввели


 
vvh   (2005-10-25 19:59) [4]

Подобный вопрос уже когда-то задавался, но по ссылке получил:
"Не найдена ветка № 1102411092, возможно она была удалена или перенесена в другой форум."


 
Anatoly Podgoretsky ©   (2005-10-25 20:09) [5]

Вот теперь понятно, а с чем у тебя проблема?


 
vvh   (2005-10-25 20:15) [6]

Когда начинаю вводить буквы(цифры), поле ввода появляется, но пустое, надо вводить еще раз.


 
Anatoly Podgoretsky ©   (2005-10-25 20:17) [7]

Ты их до помещения в поле, где то сохраняй, а потом копируй в поле.


 
vvh   (2005-10-25 20:23) [8]

Вот что есть у меня, где сохранять:

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;


 
YurikGL ©   (2005-10-25 20:51) [9]

Пользуй свойство OptionsEH.dghPreferIncSearch:=true


 
vvh   (2005-10-25 20:54) [10]

Что это за свойство? Как его найти?


 
YurikGL ©   (2005-10-25 20:56) [11]


> vvh   (25.10.05 20:54) [10]

Свойство EHGrid-а в инспекторе объекта...
Установи его в true


 
vvh   (2005-10-25 21:02) [12]

Установил, но все осталось по прежнему. Нажимаю клавишу, едит появился, но пустой.


 
YurikGL ©   (2005-10-25 21:09) [13]

Убери едит....
Просто ehGrid подключенный к датасету
ReadOnly:=true
OptionsEH.dghPreferIncSearch:=true
встаешь курсором в колонку и начинаешь набирать текст... грид будет сам позиционировать курсор.


 
vvh   (2005-10-25 21:17) [14]

Понятно. Большое спасибо всем за помощь.  
Но я нашел таки, то что хотел:

procedure TFrameListTeacher.DBGridEh1KeyPress(Sender: TObject;
 var Key: Char);
begin
 inherited;
dxEdit1.Visible:=True;
SendMessage(dxEdit1.Handle,WM_CHAR,Ord(Key),0);<-------это решило проблему
dxEdit1.SetFocus;
end


 
syte_ser78 ©   (2005-10-26 08:55) [15]

YurikGL ©   (25.10.05 21:09) [13]
Удобно. А как выставить интервал между двумя различными запросами на поиск?


 
msguns ©   (2005-10-26 09:35) [16]

Поиск в 1С удобен лишь для контекстного поиска, но абсолютно неприемлим, если надо найти все записи, удовлетворяющие заданному критерию и показать их списком отдельно от грида (фильтр - это совсем не то). Да и поиск по нескольким колонкам или диапазону там реализован коряво.



Страницы: 1 вся ветка

Текущий архив: 2005.11.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.031 c
1-1129891440
DelphiLexx
2005-10-21 14:44
2005.11.13
Движение компонента


2-1129888595
Eugene_T
2005-10-21 13:56
2005.11.13
Элементарный вопрос по булевской функции


4-1126241076
Фагот
2005-09-09 08:44
2005.11.13
Перехват клавиш в консольном приложении


5-1109873176
MadLesS
2005-03-03 21:06
2005.11.13
Как создать свой конструктор с другими параметрами?


9-1119805079
wiz
2005-06-26 20:57
2005.11.13
Rust! новая демка