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

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

Кроме того, выражение "примерно подходит" как-то не раскрывает суть...
Даже если это - часть автора/названия, - при наличии нескольких слов для поиска придётся сделать перебор комбинаций слов.
...
Рейтинг: 0 / 0
04.03.2011, 15:36
    #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
04.03.2011, 15:38
    #37149299
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогие пожалуйста с поиском!!!!
Хильа в результате в гриде должны остаться только те книги, в названии которых есть введенный фрагмент. Тоже самое касательно поля автор.
Для команды Select-SQL - это оператор LIKE

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

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

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

источник - табцица book
...
Рейтинг: 0 / 0
04.03.2011, 15:54
    #37149337
Хиль
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогие пожалуйста с поиском!!!!
ВладимирМ, как сделать так, чтобы в гриде остались только найденные записи?
...
Рейтинг: 0 / 0
04.03.2011, 16:04
    #37149362
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогие пожалуйста с поиском!!!!
ХильВладимирМ, как сделать так, чтобы в гриде остались только найденные записи?
А как Вы это делаете сейчас? По двум параметрам? Ведь может не быть ни одного параметра, или один, или два.
...
Рейтинг: 0 / 0
04.03.2011, 16:06
    #37149369
Хиль
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогие пожалуйста с поиском!!!!
Владимир, большое спасибо. Проблема решена.
...
Рейтинг: 0 / 0
04.03.2011, 16:53
    #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
04.03.2011, 23:21
    #37150059
Хиль
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогие пожалуйста с поиском!!!!
Изучила все советы. Вроде что-то сделала, и вроде даже что хотелось. У меня результат из курсора выдается в грид. При повторном поиске все настройки грида слетают (ширина столбцов и их названия). Не подскажите в чем может быть причина?
...
Рейтинг: 0 / 0
04.03.2011, 23:34
    #37150077
Помогие пожалуйста с поиском!!!!
...
Рейтинг: 0 / 0
04.03.2011, 23:40
    #37150084
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогие пожалуйста с поиском!!!!
Ну, раз сменили тип ControlSource и обновляете курсор - вообще-то, изучайте, что и как работать с GRID. Вообще, обсуждается давно и долго, что здесь, что на фоксклубе... 286698
...
Рейтинг: 0 / 0
05.03.2011, 11:56
    #37150649
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогие пожалуйста с поиском!!!!
ХильИзучила все советы. Вроде что-то сделала, и вроде даже что хотелось. У меня результат из курсора выдается в грид. При повторном поиске все настройки грида слетают (ширина столбцов и их названия). Не подскажите в чем может быть причина?

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

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

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

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

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

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

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

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

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

ок, смотрите пример,
там показан курсорадаптер для родн.таблиц с изменяемым условием ограничения.
...
Рейтинг: 0 / 0
05.03.2011, 13:15
    #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
06.03.2011, 21:28
    #37152266
oldfox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогие пожалуйста с поиском!!!!
Решал похожую задачку через
select * from источник where выражение$поле
Далее выбор пользователя.
Правда на больших таблицах может тормозить.(Ну на очень больших)
...
Рейтинг: 0 / 0
12.03.2011, 02:24
    #37160740
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогие пожалуйста с поиском!!!!
oldfox,

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


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