Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
8-1117391048
Grief
2005-05-29 22:24
2005.11.13
воспроизведение звука


4-1126766053
Новый
2005-09-15 10:34
2005.11.13
окно приветствия


2-1129986794
SergP
2005-10-22 17:13
2005.11.13
Application.Terminate


2-1129795481
koks
2005-10-20 12:04
2005.11.13
Форматирование вычисляемого поля


9-1119948586
Зм1й
2005-06-28 12:49
2005.11.13
Загрузка модели





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский