powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поиск по первым цифрам
5 сообщений из 5, страница 1 из 1
Поиск по первым цифрам
    #36008271
Blackline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите , как организовать быстрый поиск по первым цифрам.Спасибо за ответ!
...
Рейтинг: 0 / 0
Поиск по первым цифрам
    #36008674
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blackline,

В приведённом ниже примере для поиска в справочнике работающих используется заранее созданный
курсор cfio, поиск можно проводить как по 1-м буквам фио так и по цифрам таб№
Для выхода из формы выбор в combbox
Код: 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.
SELE  0   
  CREATE CURSOR CFIO (TN C( 5 ),FIO C( 40 ))  
  INSERT INTO CFIO (TN,FIO) VALUES ('10   ','БЕЙ ФРАНЦ БРОНИСЛАВОВИЧ                 ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1004 ','ЯНЦЕВИЧ АЛЕКСАНДР ИОСИФОВИЧ             ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1005 ','ПЕРОВСКИЙ ИГОРЬ АЛЕКСАНДРОВИЧ           ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1006 ','ВЕНСКО ЮРИЙ ВЛАДИМИРОВИЧ                ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1011 ','ЧЕРНИК ВИТАЛИЙ ИОСИФОВИЧ                ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1026 ','МИССА ЧЕСЛАВ ИОСИФОВИЧ                  ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1043 ','ВАЛЮК РЕГИНА ВИКТОРОВНА                 ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('105  ','КОЗЕЛ АЛЕКСАНДР АНАТОЛЬЕВИЧ             ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1056 ','СНАСТИНА АЛЕКСАНДР ЛЕОНИДОВИЧ           ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1062 ','ЖУК СВЯТОСЛАВ ПЕТРОВИЧ                  ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('107  ','КАСПОР ГАЛИНА МИХАЙЛОВНА                ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1087 ','ДУДИЧ ИВАН ИВАНОВИЧ                     ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('110  ','КОЗЛОВСКАЯ ГАЛИНА ИВАНОВНА              ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1112 ','РЕЙШЕЛЬ ИВАН ИВАНОВИЧ                   ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1114 ','ЯНЧУК ВЛАДИМИР ЛЕОНИДОВИЧ               ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1121 ','ГРИГОРОВИЧ ВИКТОР АНТОНОВИЧ             ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1128 ','ОРАНСКИЙ СТАНИСЛАВ СТАНИСЛАВОВИЧ        ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1136 ','ШУЛЬГАН АЛЕКСАНДР ПЕТРОВИЧ              ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('115  ','ЛЕПЕШКО ГЕОРГИЙ ВАСИЛЬЕВИЧ              ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1152 ','БУРАК ЮРИЙ ВЛАДИМИРОВИЧ                 ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1154 ','ЦИХОВИЧ ИВАН БРОНИСЛАВОВИЧ              ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('116  ','ЛАПКО КАЗИМИР МАРКОВИЧ                  ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('117  ','МАТЮКЕВИЧ ЧЕСЛАВ МИХАЙЛОВИЧ             ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1219 ','БУЙНИЦКИЙ ПЁТР МИХАЙЛОВИЧ               ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('122  ','ПАРФЕНЧИК ГАЛИНА ЯНОВНА                 ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1222 ','САРЕЛО ОЛЬГА ПЕТРОВНА                   ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1223 ','КНУТОВИЧ ГЕНРИХ ГЕНРИХОВИЧ              ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1230 ','ЛУГИН АЛЕКСАНДР ГЕНРИХОВИЧ              ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1233 ','МАТВЕЙЧУК КОНСТАНТИН КОНСТАНТИНОВИЧ     ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1243 ','ИВАНОВ СЕРГЕЙ ПЕТРОВИЧ                  ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('125  ','ПАЦЕВИЧ МАРЬЯН ВЛАДИСЛАВОВИЧ            ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1254 ','АДАМОВИЧ ВИКТОР МЕЧИСЛАВОВИЧ            ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('1267 ','МОГИЛЬНИЦКАЯ ОЛЬГА ИВАНОВНА             ')  
  INSERT INTO CFIO (TN,FIO) VALUES ('127  ','ПУДИНОВСКАЯ БОЖЕНА-ЭМИЛИЯ ИВАНОВНА      ')




PUBLIC oform1  
    
  oform1=NEWOBJECT("form1")  
  oform1.Show  
  RETURN  
 *  
  DEFINE CLASS form1 AS form  
    
    
  	Height =  240   
  	Width =  343   
  	Desktop = .T.  
  	DoCreate = .T.  
  	AutoCenter = .T.  
  	BorderStyle =  2   
  	Caption = "Поиск работника по первым буквам или таб.№"  
  	ControlBox = .F.  
  	FontSize =  10   
  	MaxButton = .F.  
  	MinButton = .F.  
  	WindowType =  1   
  	WindowState =  0   
  	sym = ("")  
  	kodt = ""  
  	Name = "Form1"  
  	wsp = .F.  
  	cfilter = .F.  
  	cfilterold = .F.  
    
    
  	ADD OBJECT list1 AS listbox WITH ;  
  		BoundColumn =  1 , ;  
  		ColumnCount =  2 , ;  
  		ColumnWidths = "52,256", ;  
  		RowSourceType =  3 , ;  
  		RowSource = "SELECT TN,FIO FROM CFIO ORDER BY FIO INTO CURSOR CNAM", ;  
  		ControlSource = "THISFORM.KODT", ;  
  		FirstElement =  1 , ;  
  		Height =  202 , ;  
  		IncrementalSearch = .F., ;  
  		Left =  0 , ;  
  		NumberOfElements =  0 , ;  
  		TabIndex =  2 , ;  
  		Top =  1 , ;  
  		Width =  336 , ;  
  		Name = "List1"  
    
    
  	ADD OBJECT txtsearch AS textbox WITH ;  
  		Height =  23 , ;  
  		Left =  222 , ;  
  		TabIndex =  1 , ;  
  		Top =  211 , ;  
  		Width =  100 , ;  
  		Name = "txtSearch"  
    
    
  	ADD OBJECT label1 AS label WITH ;  
  		WordWrap = .F., ;  
  		Caption = "Вводите таб.№ или 1-ые буквы ФИО:", ;  
  		Height =  18 , ;  
  		Left =  8 , ;  
  		Top =  213 , ;  
  		Width =  211 , ;  
  		TabIndex =  3 , ;  
  		BackColor = RGB( 255 , 255 , 128 ), ;  
  		Name = "Label1"  
    
    
  	PROCEDURE Unload  
  		RETURN THISFORM.KODT  
  	ENDPROC  
    
    
  	PROCEDURE Load  
  		PERB=""  
  	ENDPROC  
    
    
  	PROCEDURE list1.Valid  
  		RELEASE THISFORM  
  	ENDPROC  
    
    
  	PROCEDURE txtsearch.Valid  
  		IF LASTKEY()= 13   
  			SELE CNAM  
  			GO TOP  
  			THISFORM.KODT=CNAM.TN  
  			THISFORM.List1.VALID  
  		ENDIF  
  	ENDPROC  
    
    
  	PROCEDURE txtsearch.InteractiveChange  
  				LOCAL PERB  
  				PERB=""  
  				PERB=UPPER(RTRIM(This.Value))  
  				IF BETWEEN(LEFT(This.Value, 1 ),"0","9")  
  					ThisForm.List1.RowSource="SELECT TN,FIO FROM CFIO WHERE LEFT(TN,LEN(PERB))=PERB AND NOT EMPTY(FIO) ORDER BY TN INTO CURSOR CNAM"  
  				ELSE  
  					ThisForm.List1.RowSource='SELECT TN,FIO FROM CFIO WHERE (PERB=="" OR LEFT(FIO,LEN(PERB))=PERB) AND NOT EMPTY(FIO) ORDER BY FIO INTO CURSOR CNAM'  
  				ENDIF  
  				THISFORM.List1.REQUERY  
 		*ThisForm.LIST1.SetFocus  
 		*This.SetFocus  
  	ENDPROC  
    
    
  ENDDEFINE  
 *  
 *-- EndDefine: form1
...
Рейтинг: 0 / 0
Поиск по первым цифрам
    #36008740
Blackline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LUCIAN,
Большое спасибо,но я не программист и не очень хорошо знаю фокспро,как переделать,чтобы выводить фамилии тех,у кого телефон начинается на три введенные цифры?((

тел=SPACE(3)
@1,4 say 'тел=' get тел
READ
set order to 0
ns=1
scan for тел = телефон
@9+ns,12 say фам
ns=ns+1
ENDSCAN
...
Рейтинг: 0 / 0
Поиск по первым цифрам
    #36008781
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlacklineБольшое спасибо,но я не программист и не очень хорошо знаю фокспро,как переделать,чтобы выводить фамилии тех,у кого телефон начинается на три введенные цифры?((
В моём примере эта возможность осуществляется,например если ввести 123 то получим в combobox 2 строки с данным условием,но если у вас не VFP,то мой пример не поможет
...
Рейтинг: 0 / 0
Поиск по первым цифрам
    #36010371
Tohan_ORA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlacklineLUCIAN,
Большое спасибо,но я не программист и не очень хорошо знаю фокспро,как переделать,чтобы выводить фамилии тех,у кого телефон начинается на три введенные цифры?((

тел=SPACE(3)
@1,4 say 'тел=' get тел
READ
set order to 0
ns=1
scan for тел = телефон
@9+ns,12 say фам
ns=ns+1
ENDSCAN

Может так попробывать?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
тел=SPACE( 3 )
@ 1 , 4  say 'тел=' get тел
READ
set order to  0 
ns= 1 
scan for left(ltrim(телефон), 3 )=тел
@ 9 +ns, 12  say  фам
ns=ns+ 1 
ENDSCAN
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поиск по первым цифрам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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