Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Combo - запрос по набранным буквам? / 15 сообщений из 15, страница 1 из 1
29.06.2005, 09:44
    #33139561
НатальяП
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
Подскажите, как можно в combo реализовать такой выбор - набираешь, например, букву "А", и в списке остаются только клиенты на "А", далее набираешь "б", остаются те, у кого в названии есть "Аб", и т.д. Хотелось бы реализовать это через SQL-запрос, а не фильтр, т.к. таблица большая.
...
Рейтинг: 0 / 0
29.06.2005, 12:37
    #33140130
О_В_Д
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
Привет!
А что, IncrementalSearch = .T. не подходит?
...
Рейтинг: 0 / 0
29.06.2005, 13:25
    #33140289
НатальяП
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
Нет, получается что просто встаешь на первое слово, соответсвующее твоим набранным буквам, а мне хотелось бы - ввел "А", в списке комбо только объекты начинающиеся с "А", ввел "б", остались ТОЛЬКО начинающиеся на "Аб", то есть после каждой новой буквы запускался бы запрос и результат был виден в комбо!
...
Рейтинг: 0 / 0
29.06.2005, 13:40
    #33140346
О_В_Д
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
Тогда другой вопрос. А зачем комбобокс? Я такие вещи делаю через текстбокс и грид. В текстбоксе идет набор, а в гриде после каждого нового символа пояляются нужные данные.
...
Рейтинг: 0 / 0
29.06.2005, 13:48
    #33140363
НатальяП
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
Почему combo? Потому что форма выглядит как типовая Товарная накладная, где вверху будет видна только одна строчка combo, и пользователь будет вводить первые буквы поставщиков, поэтому для грида просто нет места!
...
Рейтинг: 0 / 0
29.06.2005, 14:08
    #33140421
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
2НатальяП
зато на другой форме место найдется
кроме того у объектов есть свойство visible
...
Рейтинг: 0 / 0
29.06.2005, 14:21
    #33140456
О_В_Д
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
НатальяП...поэтому для грида просто нет места!

Знаете, а у грида, как и у других объектов, есть возможность менять размер по вашему усмотрению. На форме у меня имеется пара гридов, в которых только хэдеры и всего одна строка.
...
Рейтинг: 0 / 0
29.06.2005, 21:45
    #33141537
Elnur_M
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
...
Рейтинг: 0 / 0
30.06.2005, 03:52
    #33141706
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
Hi Наталья!

Поищи на universalthread.com в разделе download, а также в решениях на foxclub.ru в принципе это не сложно сделать...Именно на запросе - причём выполнять его не обязательно при вводе буквы - можно выполнять при DropDown - т.е. открытии списка (ибо выборка из пары миллионов записей всех начинающихся на "А" - а это в самом лучшем случае каждая 50-я запись! будет тормозить.)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
30.06.2005, 09:35
    #33141848
Andrey Ts
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
VFP5:
(единственное- может потребоваться доработка для значения NULL)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
ComboBox.Style= 2  && разумеется!
******* ComboBox.GotFocus *******
THIS.SelStart =  0 
THIS.SelLength = LEN(ALLTRIM(THIS.Value))
THIS.TAG=""
********ComboBox.KeyPress *******
LPARAMETERS nKeyCode, nShiftAltCtrl
newSym=CHR(nKeyCode)
DelKey=(nKeyCode= 7  OR nKeyCode= 127 )
IF (ISALPHA(newSym) OR ISDIGIT(newSym) OR DelKey ) AND nShiftAltCtrl< 2  ;
  AND This.ListCount> 0  AND !EMPTY(THIS.DisplayValue)
  txtLen=LEN(THIS.DisplayValue)
	IF !DelKey
	 This.Tag=ALLT( LEFT(THIS.DisplayValue,THIS.SelStart)+newSym+ ;
	 RIGHT(THIS.DisplayValue,txtLen-THIS.SelStart-THIS.SelLength) )
	ELSE
		IF THIS.SelLength+THIS.SelStart=txtLen
	 		This.Tag=""
		ELSE
			IF nKeyCode= 7 
		 		This.Tag=ALLT( LEFT(THIS.DisplayValue,THIS.SelStart)+ ;
		 			RIGHT(THIS.DisplayValue,txtLen-THIS.SelStart-IIF(THIS.SelLength= 0 , 1 ,THIS.SelLength)) )
			ELSE
		 		This.Tag=ALLT( LEFT(THIS.DisplayValue,IIF(THIS.SelLength= 0 ,THIS.SelStart- 1 ,THIS.SelStart) )+ ;
		 			RIGHT(THIS.DisplayValue,txtLen-THIS.SelStart-THIS.SelLength) )
			ENDIF
		ENDIF
	ENDIF
ENDIF
******** ComboBox.InteractiveChange *******
IF This.ListCount> 0  AND !EMPTY(This.Tag)
	input_Text=This.Tag
	nLenText=LEN(input_Text)
	cntList=This.ListCount
	FOR ij= 1  TO cntList
		IF UPPER(input_Text)==UPPER(LEFT(This.List[ij],nLenText))
			THIS.DisplayValue=allt(This.List[ij])
			THIS.SelStart=nLenText
			THIS.SelLength=LEN(allt(This.List[ij]))-nLenText
			THIS.TAG=""
			EXIT
		ENDIF
	ENDFOR
ENDIF
...
Рейтинг: 0 / 0
30.06.2005, 14:32
    #33142821
НатальяП
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
Спасибо! Счас буду пробовать!
...
Рейтинг: 0 / 0
30.06.2005, 15:23
    #33143017
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
1 .Отказаться от ComboBox
2. Создать свой класс для поиска, как, например, тут: http://www.caws.atnet.ru/vfox/vfoxpro5.html
С уважением, Алексей.
...
Рейтинг: 0 / 0
01.07.2005, 01:47
    #33144049
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
Hi Aleksey-K!

А почему тебе не нравится такой "ищущий" комбо? Вполне UserFriendly решение :) Лишь ограничивай объём попадающих в комбо значений для порядку и всё. В принципе решение с текстбоксом вызывающим другую форму ничем не отличается от этого.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
28.11.2006, 14:25
    #34160892
alex_lip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
Предлагаю доработку предыдущего решения.
в InteractiveChange прописываем


If !Empty(This.Tag) Then
Select test1
Go Top
Set Exact Off
Locate For test1.name_test=This.Tag
Set Exact On
If Found()
Thisform.combo1.DisplayValue=test1.name_test
Thisform.combo1.SelStart=Len(This.Tag)
Thisform.combo1.SelLength =Len(test1.name_test)-Len(This.Tag)
prom_rec=RECNO()
p_name=Thisform.combo1.DisplayValue
p_sel1=Thisform.combo1.SelStart
p_sel2=Thisform.combo1.SelLength
ELSE
Thisform.combo1.DisplayValue = p_name
Thisform.combo1.SelStart = p_sel1
Thisform.combo1.SelLength =p_sel2
GO prom_rec
Endif
Endif

где p_name, p_sel1, p_sel2, prom_rec - глобальные переменные - получаем ограничение ввод только тех символов, которые можно найти.
...
Рейтинг: 0 / 0
28.11.2006, 15:16
    #34161099
LeKo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Combo - запрос по набранным буквам?
А я иной раз использую TextBox + Popup Menu. Очень удобно.

На Valid-t текстбокса можно
Код: plaintext
1.
SELECT поле1, поле2... FROM табла1 WHERE нужное усл-е(в частности поиск по первым буквам) INTO CURSOR курсор1

а затем. что-нидь типа:
авторDEFINE POPUP mP PROMPT FIELD ...
ON SELECTION POPUP mP DEACTIVATE POPUP mP
ACTIVATE POPUP mP
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Combo - запрос по набранным буквам? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]