powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогие пожалуйста с поиском!!!!
24 сообщений из 24, страница 1 из 1
Помогие пожалуйста с поиском!!!!
    #37149213
Хиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток. Знатоки, помогите !!!! Смотрела в форуме похожие темы но увы ничего не выходит у меня.
Есть таблица - перечень книг в библиотеке, которая отображается на форме в гриде. Я организовываю поиск в этой таблице по двум параметрам которые пользователь вводит сам. Худо бедно я сделала поиск. Но сейчас от меня требуют чтобы было так : вводишь примерное название книги и на экране остается только то что примерно подходит. Мудрила, мудрила...ничего не намудрила. В итоге только испортила то что хоть как-то работало.
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37149255
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведите пример "примерного совпадения". Т.е. что вводит пользователь и что должно быть найдено по этому значению.
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37149263
Хиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,

Ну, например, нужен список книг по FoxPro. Значит пользователь вводит FoxPro
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37149266
Хиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а в результате в гриде должны остаться только те книги, в названии которых есть введенный фрагмент. Тоже самое касательно поля автор.
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37149271
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что у вас является источником данных грида?

Кроме того, выражение "примерно подходит" как-то не раскрывает суть...
Даже если это - часть автора/названия, - при наличии нескольких слов для поиска придётся сделать перебор комбинаций слов.
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37149289
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хиль,
В ниже приведенном примере поиск осуществляется по 1-ым буквам или по фрагментам,фрагменты разделяются с помощью "+"
при этом поиск может быть в режиме 'AND' или 'OR'

Код: 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.
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.
  
  SELE  0   
  CREATE CURSOR CASKLAD (CMAT N( 10 ),NMAT C( 60 ),PRVS C( 20 ),EIS C( 7 ))  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 12 ,'Автолампа             а22                                   ','ЗАП                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 21 ,'Автолампа жиг.        а40                                   ','ЗАП                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 15613 ,'Бич  правый 4221618285                                      ','КОМ                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 3474 ,'Винт                 4*20                                   ','МАТ                 ','КГ     ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 677 ,'Втулка        130-5001040                                   ','ИНС                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 3282 ,'Газ жидкий пропан                                           ','ТОП                 ','КГ     ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 6123 ,'Диск     5.00р-15-3101012                                   ','МАТ                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 1282 ,'Зубило              200мм                                   ','ИНС                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 33707 ,'Изолятор     5320-3724121                                   ','КОМ                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 15931 ,'Кабель          060199150                                   ','КОМ                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 1300 ,'Ключ гаечный         8*10                                   ','ИНС                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 1304 ,'Ключ гаечный        17*19                                   ','ИНС                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 3580 ,'Лист алюмин.        1.0мм                                   ','МЕТ                 ','КГ     ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 3851 ,'Манжета       1.2*22*40-1                                   ','МАТ                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 22370 ,'Обшивка  527-35151/023/02                                   ','КОМ                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 2595 ,'Подшипник            8104                                   ','ИНС                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 1868 ,'Рулетка                2м                                   ','ИНС                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 3664 ,'Смазка графитная                                            ','ТОП                 ','КГ     ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 7860 ,'Труба             25*25*2                                   ','МЕТ                 ','Т      ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 12158 ,'Уголок            45*45*4                                   ','МЕТ                 ','Т      ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 10910 ,'Фланец крепл.подш. 051023                                   ','МЕТ                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 4369 ,'Цепь               15,875                                   ','МАТ                 ','М      ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 16205 ,'Чашка       5609/00-038/0                                   ','КОМ                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 3699 ,'Шплинт               4*28                                   ','МАТ                 ','КГ     ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 30595 ,'Щетка.         072 000215                                   ','КОМ                 ','ШТУК   ')  
  INSERT INTO CASKLAD (CMAT,NMAT,PRVS,EIS) VALUES ( 10987 ,'Эмаль красно-рубиновая МЛ-12                                ','МАТ                 ','КГ     ')  
  PUBLIC oform1  
    
  oform1=NEWOBJECT("form1")  
  oform1.Show  
  RETURN  
    
    
 	**************************************************  
 *-- Form:         form1 (d:\or_skl\p_skl.scx)  
 *-- ParentClass:  form  
 *-- BaseClass:    form  
 *-- Time Stamp:   01/06/11 11:32:11 AM  
 *  
  DEFINE CLASS form1 AS form  
    
    
  	Height =  310   
  	Width =  500   
  	Desktop = .T.  
  	DoCreate = .T.  
  	AutoCenter = .T.  
  	BorderStyle =  2   
  	Caption = "Поиск товара по первым буквам или фрагменту"  
  	ControlBox = .F.  
  	FontSize =  10   
  	MaxButton = .F.  
  	MinButton = .F.  
  	WindowType =  1   
  	WindowState =  0   
  	sym = ("")  
  	kodt =  0   
  	Name = "form1"  
  	wsp = .F.  
  	cfilter = .F.  
  	cfilterold = .F.  
    
    
  	ADD OBJECT list1 AS listbox WITH ;  
  		BoundColumn =  3 , ;  
  		ColumnCount =  3 , ;  
  		ColumnWidths = "300,104,52", ;  
  		RowSourceType =  3 , ;  
  		RowSource = "SELECT nmat,eiS,cmat FROM caSKLAD ORDER BY nmat INTO CURSOR CTEX", ;  
  		ControlSource = "THISFORM.KODT", ;  
  		FirstElement =  1 , ;  
  		Height =  202 , ;  
  		IncrementalSearch = .F., ;  
  		Left =  9 , ;  
  		NumberOfElements =  0 , ;  
  		TabIndex =  2 , ;  
  		Top =  33 , ;  
  		Width =  495 , ;  
  		BoundTo = .T., ;  
  		Name = "List1"  
    
    
  	ADD OBJECT txtsearch AS textbox WITH ;  
  		Height =  23 , ;  
  		Left =  231 , ;  
  		TabIndex =  1 , ;  
  		Top =  253 , ;  
  		Width =  162 , ;  
  		Name = "txtSearch"  
    
    
  	ADD OBJECT label1 AS label WITH ;  
  		WordWrap = .T., ;  
  		Caption = "Первые буквы наименов. или фрагмент(ы) в форме(+...+...):", ;  
  		Height =  32 , ;  
  		Left =  55 , ;  
  		Top =  248 , ;  
  		Width =  170 , ;  
  		TabIndex =  3 , ;  
  		BackColor = RGB( 255 , 255 , 128 ), ;  
  		Name = "Label1"  
    
    
  	ADD OBJECT shape1 AS shape WITH ;  
  		Top =  2 , ;  
  		Left =  10 , ;  
  		Height =  31 , ;  
  		Width =  494 , ;  
  		BackColor = RGB( 128 , 255 , 255 ), ;  
  		Name = "Shape1"  
    
    
  	ADD OBJECT line1 AS line WITH ;  
  		Height =  31 , ;  
  		Left =  313 , ;  
  		Top =  2 , ;  
  		Width =  0 , ;  
  		Name = "Line1"  
    
    
  	ADD OBJECT line2 AS line WITH ;  
  		Height =  35 , ;  
  		Left =  420 , ;  
  		Top =  0 , ;  
  		Width =  0 , ;  
  		Name = "Line2"  
    
    
  	ADD OBJECT label2 AS label WITH ;  
  		Caption = "Наименование товара", ;  
  		Height =  13 , ;  
  		Left =  32 , ;  
  		Top =  9 , ;  
  		Width =  197 , ;  
  		BackColor = RGB( 128 , 255 , 255 ), ;  
  		Name = "Label2"  
    
    
  	ADD OBJECT label3 AS label WITH ;  
  		Caption = "Ед.измер.", ;  
  		Height =  17 , ;  
  		Left =  328 , ;  
  		Top =  11 , ;  
  		Width =  84 , ;  
  		BackColor = RGB( 128 , 255 , 255 ), ;  
  		Name = "Label3"  
    
    
  	ADD OBJECT label4 AS label WITH ;  
  		Caption = "Код", ;  
  		Height =  17 , ;  
  		Left =  432 , ;  
  		Top =  12 , ;  
  		Width =  40 , ;  
  		BackColor = RGB( 128 , 255 , 255 ), ;  
  		Name = "Label4"  
    
    
  	ADD OBJECT optiongroup1 AS optiongroup WITH ;  
  		ButtonCount =  2 , ;  
  		Value =  1 , ;  
  		Height =  46 , ;  
  		Left =  4 , ;  
  		Top =  241 , ;  
  		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 command1 AS commandbutton WITH ;  
  		Top =  282 , ;  
  		Left =  245 , ;  
  		Height =  27 , ;  
  		Width =  103 , ;  
  		Caption = "Отмена поиска", ;  
  		Name = "Command1"  
    
    
  	PROCEDURE Unload  
  		RETURN THISFORM.KODT  
  	ENDPROC  
    
    
  	PROCEDURE Load  
  		PERB=""  
  	ENDPROC  
    
    
  	PROCEDURE Init  
  		ThisForm.txtSearch.Value='+'  
  		ThisForm.txtSearch.InteractiveChange  
  	ENDPROC  
    
    
  	PROCEDURE list1.Valid  
  		RELEASE THISFORM  
  	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 nmat,eiS,cmat FROM caSKLAD  WHERE '  
  		    FOR I= 1  TO KW  
  				ZAPR=ZAPR+IIF(I= 1 ,'"',BUL)+STREXTRACT(PERB, '+','+',I)+'" $ UPPER(nmat)'  
  			ENDFOR  
  			ZAPR=ZAPR+' order by nmat INTO CURSOR CSLD'  
  		   ELSE  
  			 	ZAPR='SELECT nmat,eiS,cmat FROM caSKLAD  order by nmat INTO CURSOR CSLD'  
  		   ENDIF  
  			ThisForm.List1.RowSource=ZAPR  
  		ELSE  
  			PERB=UPPER(RTRIM(This.Value))  
  			ThisForm.List1.RowSource="SELECT nmat,eiS,cmat FROM caSKLAD WHERE LEFT(UPPER(nmat),LEN(PERB))=PERB order by nmat INTO CURSOR CSLD"  
  		ENDIF  
  		THISFORM.List1.REQUERY  
  	ENDPROC  
    
    
  	PROCEDURE optiongroup1.Valid  
  		ThisForm.txtSearch.InteractiveChange  
  	ENDPROC  
    
    
  	PROCEDURE command1.Click  
  		THISFORM.KODT= 0   
  		RELEASE THISFORM  
  	ENDPROC  
    
    
  ENDDEFINE  
 *  
 *-- EndDefine: form1  
 **************************************************  

	
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37149299
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хильа в результате в гриде должны остаться только те книги, в названии которых есть введенный фрагмент. Тоже самое касательно поля автор.
Для команды Select-SQL - это оператор LIKE

Код: plaintext
1.
2.
3.
4.
5.
* Строка, которую ищем
local lcString
lcString = "FoxPro"

* Сам запрос
select * from MyTable where MyField LIKE '%' + m.lcString + '%'
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37149309
Хиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,

а если поиск сразу по наименованию и по автору , через AND вторе условие?
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37149312
Хиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

источник - табцица book
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37149337
Хиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ, как сделать так, чтобы в гриде остались только найденные записи?
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37149362
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХильВладимирМ, как сделать так, чтобы в гриде остались только найденные записи?
А как Вы это делаете сейчас? По двум параметрам? Ведь может не быть ни одного параметра, или один, или два.
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37149369
Хиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир, большое спасибо. Проблема решена.
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37149532
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделайте источником данных курсор.
Создавайте его через Select-SQL с условием типа "WHERE Upper(Author) LIKE '%'+m.FindAuthor+'%' AND Upper(Name) LIKE '%'+m.FindName+'%'"
Но это только для одного слова в выражении поиска. Если же слов несколько - придется повозиться побольше.
Например, сделать дополнительный выбор "искать все слова/любое из слов", затем строку поиска парсить и создавать условие программно. Типа:
Код: 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.
* Такая типа быстронаписанная функция
Function MakeFindStr
lparameters sFind, sField, sOper
Private s, ss, i, lens
	s=' '+Alltrim(m.sFind)
	lens=len(m.s)
	ss=''
	i= 1 
	do while m.i<=m.lens
		do while substr(m.s,i, 1 )=' '
			i=m.i+ 1 
		enddo
		ss=m.ss+m.sField+' LIKE "%'
		do while substr(m.s,i, 1 )!=' ' and m.i<=m.lens
			ss=m.ss+upper(substr(m.s,i, 1 ))
			i=m.i+ 1 
		enddo
		ss=m.ss+'%"'+iif(m.i<len(m.s),' '+m.sOper+' ','')
	enddo
return m.ss

* Такой типа основной код
sFindA=''
sFindN='FoxPro разработка'
...
sFindA=MakeFindStr(sFindA,'Upper(Author)','OR') && искать любого из перечисленных авторов
sFindN=MakeFindStr(sFindN,'Upper(Name)','AND') && искать все слова
...
Select Author, Name From Books Where &sFindA AND &sFindN Into Cursor tmp_books
...
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37150059
Хиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изучила все советы. Вроде что-то сделала, и вроде даже что хотелось. У меня результат из курсора выдается в грид. При повторном поиске все настройки грида слетают (ширина столбцов и их названия). Не подскажите в чем может быть причина?
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37150077
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37150084
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, раз сменили тип ControlSource и обновляете курсор - вообще-то, изучайте, что и как работать с GRID. Вообще, обсуждается давно и долго, что здесь, что на фоксклубе... 286698
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37150649
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХильИзучила все советы. Вроде что-то сделала, и вроде даже что хотелось. У меня результат из курсора выдается в грид. При повторном поиске все настройки грида слетают (ширина столбцов и их названия). Не подскажите в чем может быть причина?

использовать курсорадаптер.
после подмены условия ограничения достаточно вызвать один метод курсорадаптера
и получить желаемый рез-т.

Вы работатете с сервером или родные таблицы?

пример для родных таблиц.
с наступающим.
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37150694
Хиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо, спасибо !!!

я сделала необходимую выборку, кинула в курсор. и назначила гриду необходимые параметры RecordSource и RecordSourceType для отображения данныхиз курсора. Так вот в первый раз поиск срабатыват просто замечательно (в плане отображения грида), а при повторном запуске поиска начинается фигня. Причем если принудительно ставишь названия столбцов, ширину, название итд, фокс говорит что он вообще не знает что такое Column и Header...

bibl.PageFrame1.page1.Grid1.Column1.Header1.Caption="УДК"
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37150740
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хильпрошелмимо, спасибо !!!

я сделала необходимую выборку, кинула в курсор. и назначила гриду необходимые параметры RecordSource и RecordSourceType для отображения данныхиз курсора. Так вот в первый раз поиск срабатыват просто замечательно (в плане отображения грида), а при повторном запуске поиска начинается фигня. Причем если принудительно ставишь названия столбцов, ширину, название итд, фокс говорит что он вообще не знает что такое Column и Header...

bibl.PageFrame1.page1.Grid1.Column1.Header1.Caption="УДК"

Вы не ответили какого типа источник: родные таблицы или ?

поиграйтесь пожалуйста с примером - там Вы увидите
способ использ-я курсорадаптера,подмены условия огр-я и обновления(рефреша данных)
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37150767
Хиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо, таблицы "родные". Пытаюсь разобраться. За декрет все позабывала (((
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37150777
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хильпрошелмимо, таблицы "родные". Пытаюсь разобраться. За декрет все позабывала (((

ок, смотрите пример,
там показан курсорадаптер для родн.таблиц с изменяемым условием ограничения.
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37150833
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хилья сделала необходимую выборку, кинула в курсор. и назначила гриду необходимые параметры RecordSource и RecordSourceType для отображения данныхиз курсора. Так вот в первый раз поиск срабатыват просто замечательно (в плане отображения грида), а при повторном запуске поиска начинается фигня. Причем если принудительно ставишь названия столбцов, ширину, название итд, фокс говорит что он вообще не знает что такое Column и Header...

bibl.PageFrame1.page1.Grid1.Column1.Header1.Caption="УДК"
Проблема в том, что когда Вы выполняете выборку повторно, то, прежде, чем результат будет записан в курсор, уже существующий курсор с таким именем будет уничтожен. Факт уничтожения курсора, если в этот момент он являлся источником данных Grid, приводит к полному разрушению структуры Grid. Соответственно, последующая попытка обратится к разрушенной структуре вызывает ошибку

Чтобы это предотвратить необходимо ДО перезапроса, отключить курсор от Grid. Примерно так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
* Отключаем курсор-источник от Grid
bibl.PageFrame1.page1.Grid1.RecordSource = ""

(Здесь выполняем выборку)

* Восстанавливаем настройку Grid
bibl.PageFrame1.page1.Grid1.RecordSource = "MyCursor"
bibl.PageFrame1.page1.Grid1.Column1.ControlSource = "MyCursor.Field1"
bibl.PageFrame1.page1.Grid1.Column2.ControlSource = "MyCursor.Field2"
(...)

Восстанавливать надо только источники данных. Т.е. Grid.RecordSource и Column.ControlSource. Все остальные настройки остануться как есть, поскольку отключение источника данных Grid не приводит к разрушению его структуры
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37152266
oldfox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решал похожую задачку через
select * from источник where выражение$поле
Далее выбор пользователя.
Правда на больших таблицах может тормозить.(Ну на очень больших)
...
Рейтинг: 0 / 0
Помогие пожалуйста с поиском!!!!
    #37160740
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oldfox,

Ну, str1$str2 соответствует использованию LIKE. Для новичков...
Ибо LIKE - операнд SELECT-SQL, а $ - функция языка. И по поводу минимизации использования функций (даже не UDF) в запросе можете ознакомиться в любом пособии. Осбенно с точки зрения работы рашмор-оптимизации в запросах.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогие пожалуйста с поиском!!!!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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