Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
ВнизПоиск как в 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.075 c