powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / textbox + listbox Поиск по части
8 сообщений из 8, страница 1 из 1
textbox + listbox Поиск по части
    #38479691
skvair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Помогите, пожалуйста, реализовать поиск по listbox. Ввожу в TextBox допустим "ово", и в listbox выбирается запись "паровоз". Т.е. ищет записи, если они содержат введенное. Большое спасибо.
listbox в rowsource содержит столбец из таблицы в БД.
...
Рейтинг: 0 / 0
textbox + listbox Поиск по части
    #38479786
skvair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неужели никто не может помочь?
...
Рейтинг: 0 / 0
textbox + listbox Поиск по части
    #38479791
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skvair,

AT(), ATC()
...
Рейтинг: 0 / 0
textbox + listbox Поиск по части
    #38479823
skvair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LOCATE FOR ATC(ALLTRIM(object_combo.o_naimen),'%'+upper(ALLTRIM(This.Value))+'%')

не работает. ATC() возвращает ведь номер найденного поля. Он меня не перекинет в листбокс на нужную запись

пробывал еще писать

LOCATE FOR LIKE(ALLTRIM(object_combo.o_naimen),'%'+upper(ALLTRIM(This.Value))+'%')
...
Рейтинг: 0 / 0
textbox + listbox Поиск по части
    #38479839
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skvairLOCATE FOR ATC(ALLTRIM(object_combo.o_naimen),'%'+upper(ALLTRIM(This.Value))+'%')

не работает. ATC() возвращает ведь номер найденного поля. Он меня не перекинет в листбокс на нужную запись

пробывал еще писать

LOCATE FOR LIKE(ALLTRIM(object_combo.o_naimen),'%'+upper(ALLTRIM(This.Value))+'%')

Да уж.
У тебя Combobox привязан к данным и их ТОЛЬКО отображает.
Поэтому искать нужно в ДАННЫХ, а не в объекте и отображать найденное.
И причем здесь % ?
...
Рейтинг: 0 / 0
textbox + listbox Поиск по части
    #38480347
po2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
po2
Гость
Вот результативное обсуждение подобной темы - http://www.sql.ru/forum/424741/listbox-textbox Там в моем ответе прицеплен архив с тестовой формой. Ниже, в той же теме, есть уточнения к коду.
...
Рейтинг: 0 / 0
textbox + listbox Поиск по части
    #38481948
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skvair,

Код: sql
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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
SELE 0
CREATE CURSOR CWYB (НАИМЕНОВАНИЕ C(60),ЕД_ИЗМ C(30),CMAT I(4),PRP L(1))
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Ящик                                                        ','ШТУК                          ',3291.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Контейнер                                                   ','ШТУК                          ',4568.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Ремень             в-1500                                   ','ШТУК                          ',4815.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Шланг семяпровода                                           ','М                             ',5060.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Штифт                6*20                                   ','ШТУК                          ',8337.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Зап.части для зерн.бункер                                   ','ШТУК                          ',12056.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Трос длинный                                                ','ШТУК                          ',13678.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Образец спиралей                                            ','ШТУК                          ',14496.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Ремень           SPB-3600                                   ','ШТУК                          ',15216.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Ремень  приводной резиновый          3HB-4060               ','ШТУК                          ',15217.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Фара         8724.304/014                                   ','ШТУК                          ',15376.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Транспортер    4260702121                                   ','ШТУК                          ',15383.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Головка ножа   4260714221                                   ','ШТУК                          ',15385.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Решето         4260714760                                   ','ШТУК                          ',15607.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Эксцентрик     4260694128                                   ','ШТУК                          ',15610.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Вариатор   направляющего барабана     060143796             ','ШТУК                          ',15616.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Лопасть        4240053817                                   ','ШТУК                          ',15617.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Лопасть        4240053833                                   ','ШТУК                          ',15618.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Решето          060047136                                   ','ШТУК                          ',15621.00,.F.)
INSERT INTO CWYB (НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT,PRP) VALUES ('Рукав в/д                                                   ','ШТУК                          ',15801.00,.F.)


PUBLIC oform1

oform1=NEWOBJECT("form1")
oform1.Show
RETURN


	**************************************************
*-- Form:         form1 (d:\or_skl\wybmat.scx)
*-- ParentClass:  form
*-- BaseClass:    form
*-- Time Stamp:   11/24/10 04:02:09 PM
*
DEFINE CLASS form1 AS form


	Height = 427
	Width = 625
	Desktop = .T.
	DoCreate = .T.
	AutoCenter = .T.
	BorderStyle = 3
	Caption = "Выбор товара"
	ControlBox = .F.
	FontName = "Arial"
	FontSize = 10
	MaxButton = .F.
	MinButton = .F.
	WindowType = 1
	WindowState = 0
	sym = ("")
	kodt = ""
	Name = "Form1"
	wsp = .F.


	ADD OBJECT command1 AS commandbutton WITH ;
		Top = 343, ;
		Left = 277, ;
		Height = 27, ;
		Width = 68, ;
		Caption = "ОТБОР", ;
		Name = "Command1"


	ADD OBJECT list1 AS listbox WITH ;
		ColumnCount = 2, ;
		ColumnWidths = "180,30", ;
		RowSourceType = 3, ;
		RowSource = "SELECT Наименование,Ед_изм,CMAT FROM CWYB  WHERE NOT PRP ORDER BY Наименование INTO CURSOR CLST1", ;
		Height = 340, ;
		Left = 3, ;
		Top = 20, ;
		Width = 268, ;
		Name = "List1"


	ADD OBJECT list2 AS listbox WITH ;
		ColumnCount = 2, ;
		ColumnWidths = "180,30", ;
		RowSourceType = 3, ;
		RowSource = "SELECT Наименование,Ед_изм,CMAT FROM CWYB  WHERE  PRP ORDER BY Наименование INTO CURSOR CLST2", ;
		Height = 340, ;
		Left = 355, ;
		Top = 20, ;
		Width = 268, ;
		Name = "List2"


	ADD OBJECT line1 AS line WITH ;
		OLEDropMode = 0, ;
		OLEDropEffects = 5, ;
		BorderStyle = 1, ;
		BorderWidth = 4, ;
		Height = 0, ;
		Left = 298, ;
		Top = 45, ;
		Width = 26, ;
		BorderColor = RGB(128,128,128), ;
		Name = "Line1"


	ADD OBJECT line2 AS line WITH ;
		OLEDropMode = 0, ;
		OLEDropEffects = 5, ;
		BorderStyle = 1, ;
		BorderWidth = 3, ;
		Height = 10, ;
		Left = 315, ;
		Top = 34, ;
		Width = 15, ;
		BorderColor = RGB(128,128,128), ;
		Name = "Line2"


	ADD OBJECT line3 AS line WITH ;
		OLEDropMode = 0, ;
		OLEDropEffects = 5, ;
		BorderStyle = 1, ;
		BorderWidth = 3, ;
		Height = 10, ;
		Left = 315, ;
		Top = 45, ;
		Width = 15, ;
		LineSlant = "/", ;
		BorderColor = RGB(128,128,128), ;
		Name = "Line3"


	ADD OBJECT commandgroup2 AS commandgroup WITH ;
		AutoSize = .F., ;
		ButtonCount = 4, ;
		Value = 1, ;
		Height = 193, ;
		Left = 281, ;
		Top = 86, ;
		Width = 68, ;
		Name = "Commandgroup2", ;
		Command1.AutoSize = .F., ;
		Command1.Top = 5, ;
		Command1.Left = 5, ;
		Command1.Height = 27, ;
		Command1.Width = 58, ;
		Command1.FontShadow = .T., ;
		Command1.FontSize = 15, ;
		Command1.FontStrikethru = .F., ;
		Command1.FontExtend = .T., ;
		Command1.Caption = "<", ;
		Command1.Name = "Command1", ;
		Command2.AutoSize = .F., ;
		Command2.Top = 57, ;
		Command2.Left = 5, ;
		Command2.Height = 27, ;
		Command2.Width = 58, ;
		Command2.FontShadow = .T., ;
		Command2.FontSize = 15, ;
		Command2.FontExtend = .T., ;
		Command2.Caption = "<<", ;
		Command2.Name = "Command2", ;
		Command3.AutoSize = .F., ;
		Command3.Top = 109, ;
		Command3.Left = 5, ;
		Command3.Height = 27, ;
		Command3.Width = 58, ;
		Command3.FontShadow = .T., ;
		Command3.FontSize = 15, ;
		Command3.FontExtend = .T., ;
		Command3.Caption = ">", ;
		Command3.Name = "Command3", ;
		Command4.AutoSize = .F., ;
		Command4.Top = 161, ;
		Command4.Left = 5, ;
		Command4.Height = 27, ;
		Command4.Width = 58, ;
		Command4.FontShadow = .T., ;
		Command4.FontSize = 15, ;
		Command4.FontExtend = .T., ;
		Command4.Caption = ">>", ;
		Command4.Name = "Command4"


	ADD OBJECT txtsearch AS textbox WITH ;
		Height = 23, ;
		Left = 238, ;
		TabIndex = 1, ;
		Top = 384, ;
		Width = 162, ;
		Name = "txtSearch"


	ADD OBJECT label1 AS label WITH ;
		WordWrap = .T., ;
		Caption = "Первые буквы наименов. или фрагмент(ы) в форме(+...+...):", ;
		Height = 32, ;
		Left = 62, ;
		Top = 379, ;
		Width = 170, ;
		TabIndex = 3, ;
		BackColor = RGB(255,255,128), ;
		Name = "Label1"


	ADD OBJECT optiongroup1 AS optiongroup WITH ;
		ButtonCount = 2, ;
		Value = 1, ;
		Height = 46, ;
		Left = 11, ;
		Top = 372, ;
		Width = 49, ;
		Name = "Optiongroup1", ;
		Option1.Caption = " И", ;
		Option1.Value = 1, ;
		Option1.Height = 17, ;
		Option1.Left = 5, ;
		Option1.Top = 5, ;
		Option1.Width = 61, ;
		Option1.Name = "Option1", ;
		Option2.Caption = "ИЛИ", ;
		Option2.Value = 0, ;
		Option2.Height = 17, ;
		Option2.Left = 5, ;
		Option2.Top = 24, ;
		Option2.Width = 61, ;
		Option2.Name = "Option2"


	ADD OBJECT label2 AS label WITH ;
		Alignment = 2, ;
		Caption = "Материалы для отбора", ;
		Height = 17, ;
		Left = 5, ;
		Top = 2, ;
		Width = 264, ;
		Name = "Label2"


	ADD OBJECT label3 AS label WITH ;
		Alignment = 2, ;
		Caption = "Отобранные материалы", ;
		Height = 17, ;
		Left = 355, ;
		Top = 0, ;
		Width = 264, ;
		Name = "Label3"


	PROCEDURE command1.Click
		RELEASE THISFORM
	ENDPROC


	PROCEDURE list1.Valid
		UPDATE CWYB SET PRP=NOT PRP WHERE CMAT=CLST1.CMAT
		This.REQUERY
		This.Parent.List2.REQUERY
	ENDPROC


	PROCEDURE list2.Valid
		UPDATE CWYB SET PRP=NOT PRP WHERE CMAT=CLST2.CMAT
		This.REQUERY
		This.Parent.List1.REQUERY
	ENDPROC


	PROCEDURE list2.Init
		THIS.ADDPROPERTY('TEKNOM',1)
	ENDPROC


	PROCEDURE commandgroup2.Command1.Click
		This.Parent.Parent.List2.VALID
	ENDPROC


	PROCEDURE commandgroup2.Command2.Click
		UPDATE CWYB SET PRP=NOT PRP WHERE PRP
		This.Parent.Parent.List1.REQUERY
		This.Parent.Parent.List2.REQUERY
	ENDPROC


	PROCEDURE commandgroup2.Command3.Click
		This.Parent.Parent.List1.VALID
	ENDPROC


	PROCEDURE commandgroup2.Command4.Click
		SELECT CLST1
		SCAN
			UPDATE CWYB SET PRP=NOT PRP WHERE CMAT=CLST1.CMAT
		ENDSCAN
		*UPDATE CWYB SET PRP=NOT PRP WHERE NOT PRP
		This.Parent.Parent.List1.RowSource="SELECT Наименование,Ед_изм,CMAT FROM CWYB  WHERE NOT PRP ORDER BY Наименование INTO CURSOR CLST1"
		ThisForm.txtSearch.Value=''
		This.Parent.Parent.List1.REQUERY
		This.Parent.Parent.List2.REQUERY


	ENDPROC


	PROCEDURE txtsearch.InteractiveChange
		LOCAL PERB,BUL
		PERB=""
		IF ThisForm.Optiongroup1.Value=1
			BUL=' AND "'
		ELSE
			BUL=' OR "'
		ENDIF
		IF OCCURS("+",This.Value)>0
			PERB=UPPER(ALLTRIM(This.Value))
		   IF LEN(PERB) > 1
		   	PERB=PERB+IIF(RIGHT(PERB,1)="+","","+")
			PERB=IIF(LEFT(PERB,1)="+","","+")+PERB
			KW=OCCURS("+",PERB)-1
			ZAPR='SELECT НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT FROM CWYB WHERE NOT PRP AND '
		    FOR I=1 TO KW
				ZAPR=ZAPR+IIF(I=1,'[',BUL+' [')+STREXTRACT(PERB, '+','+',I)+'] $ UPPER(НАИМЕНОВАНИЕ)'
			ENDFOR
			ZAPR=ZAPR+' order by НАИМЕНОВАНИЕ INTO CURSOR CLST1'
		   ELSE
			 	ZAPR='SELECT НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT FROM CWYB WHERE NOT PRP order by НАИМЕНОВАНИЕ INTO CURSOR CLST1'
		   ENDIF
		   	ZAPR=CHRTRAN(ZAPR,'"','')
			ThisForm.List1.RowSource=ZAPR
		ELSE
			PERB=UPPER(RTRIM(This.Value))
			ThisForm.List1.RowSource="SELECT НАИМЕНОВАНИЕ,ЕД_ИЗМ,CMAT FROM CWYB  WHERE NOT PRP AND LEFT(UPPER(НАИМЕНОВАНИЕ),"+LTRIM(STR(LEN(PERB)))+")="+"["+PERB+"] order by НАИМЕНОВАНИЕ INTO CURSOR CLST1"
		ENDIF
		THISFORM.List1.REQUERY


	ENDPROC


	PROCEDURE optiongroup1.Valid
		ThisForm.txtSearch.InteractiveChange
	ENDPROC


ENDDEFINE
*
*-- EndDefine: form1
**************************************************
...
Рейтинг: 0 / 0
textbox + listbox Поиск по части
    #38481961
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LUCIANskvair,

Код: sql
1.
'Шланг семяпровода                                           '




Я считаю - это круто!!!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / textbox + listbox Поиск по части
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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