Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Организация поиска по полям?  [new]
jonvtur
Member

Откуда:
Сообщений: 125
есть ДБФ с полями: tel С 7 (2-10-00); Fio C 240 (Иванов Иван Иванович)

Как мне отобразить элементы в форме, в которых буду задавать данные для поиска? Пример: поиск по телефону - какой элемент, с учетом того что формат телефона 2-10-00 т.е. поле одно а ввожу 21000 (знак - непечатаемый); и поиск по ФИО - какой элемент, с учетом того что надо искать по сочетанию символов (Иван-> Иванов Иван, Петров Иван, Иван Сидоров) и выводить данные насколько я понимаю в элемент Grid.

Поиск по телефону можно организовать! Но меня смущает организация такого поиска по ФИО?
14 мар 06, 10:56    [2445126]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
valeryka
Guest
Многовато поле для ФИО
14 мар 06, 15:54    [2446923]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
Недоходящий
Member

Откуда:
Сообщений: 912
2 jonvtur
Легко! в выборке после where пишешь ATC("Иван",Fio)>0 . Есил будут совпадения то будет результат положительный и выбереться
14 мар 06, 16:35    [2447170]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
jonvtur
Member

Откуда:
Сообщений: 125
поле FIO большое потому что кроме фамилии, имени и отчество у меня в этом поле занесены еще и полные наименования организации, в которых может и 200 символов быть!
15 мар 06, 06:37    [2448904]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
Dima T
Member

Откуда:
Сообщений: 15294
Почитай про функцию like()
15 мар 06, 07:14    [2448936]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
jonvtur
Member

Откуда:
Сообщений: 125
попробую объяснить задачу:

есть форма Sprav с выводом всех полей базы данных (всех реквизитов абонента). Есть Command Button (ПОИСК) в этой форме, который запускает форму Seek в ней есть элемент Grid, которое показывает содержимое: Телефон, ФИО, Город, Улица, дом, кв. мне надо созадть элементы формы Seek для ввода искомых данных по полям, с учетом того что было описано выше! И если он найдет и выведет в Grid 10 или 40 записей с полем FIO = Иван то я должен визуально найти человека в Gridе вернуться в Sprav и увидеть все данные о нем!
15 мар 06, 07:21    [2448943]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
FOXFOX
Guest
posmotri:

http://www.foxclub.ru/sol/index.php?act=view&id=505
15 мар 06, 08:26    [2449023]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
jonvtur
Member

Откуда:
Сообщений: 125
сделал форму как в примере(http://www.foxclub.ru/sol/index.php?act=view&id=505), переписал немного код Выдает при запуске формы "Синтаксическая ошибка"

Что за фигня?
15 мар 06, 11:33    [2449857]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
FOXFOX
Guest
Noverno zabil pro Public
load formu napisat Public L1, LN1,L2,LN2
15 мар 06, 12:05    [2450130]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
igor_fp
Member

Откуда:
Сообщений: 191
Посмотри https://www.sql.ru/forum/actualthread.aspx?tid=264173
15 мар 06, 12:21    [2450253]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
jonvtur
Member

Откуда:
Сообщений: 125
переменные забил ошибка исчезла. Еще одна проблемма возникает: искать поля которые содержат 2-10-00 он просто в Text Box их не хочет забивать, только а-я и тут же нужно ввести ПРОБЕЛ чтобы набрать "Иванов Перт" не хочет его вводить!
15 мар 06, 13:09    [2450588]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
jonvtur
Member

Откуда:
Сообщений: 125
из за функций которыя использую ATC?
15 мар 06, 13:10    [2450598]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
FOXFOX
Guest
Lutshe bi bila kajdiy zapis xranilas na otdelnom pole tablitsi, oqo lekqo budet otrobotat.Toqda ti mojesh ispolzivat funksiyu LIKE.Vot malinkey primer:
SELECT * FROM ABON ;
WHERE LEFT(abon.kod,2) == "01" AND ;
LIKE(ABN,UPPER(ALLTRIM(ABON.name))) AND ;
LIKE(TEL,UPPER(ALLTRIM(ABON.tel))) AND ;
INTO TABLE nFind
GO TOP

Thisform.Grid1.RecordSource = "nFind"

Thisform.Grid1.Refresh
15 мар 06, 14:03    [2450910]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
FOXFOX
Guest
Lutshe bi bila kajdiy zapis xranilas na otdelnom pole tablitsi, oqo lekqo budet otrobotat.Toqda ti mojesh ispolzivat funksiyu LIKE.Vot malinkey primer:
SELECT * FROM ABON ;
WHERE LEFT(abon.kod,2) == "01" AND ;
LIKE(ABN,UPPER(ALLTRIM(ABON.name))) AND ;
LIKE(TEL,UPPER(ALLTRIM(ABON.tel))) AND ;
INTO TABLE nFind
GO TOP

Thisform.Grid1.RecordSource = "nFind"

Thisform.Grid1.Refresh
15 мар 06, 14:06    [2450934]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
FOXFOX
Guest
Lutshe bi bila kajdiy zapis xranilas na otdelnom pole tablitsi, oqo lekqo budet otrobotat.Toqda ti mojesh ispolzivat funksiyu LIKE.Vot malinkey primer:
SELECT * FROM ABON ;
WHERE LEFT(abon.kod,2) == "01" AND ;
LIKE(ABN,UPPER(ALLTRIM(ABON.name))) AND ;
LIKE(TEL,UPPER(ALLTRIM(ABON.tel))) AND ;
INTO TABLE nFind
GO TOP

Thisform.Grid1.RecordSource = "nFind"

Thisform.Grid1.Refresh
15 мар 06, 14:08    [2450945]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
FOXFOX
Guest
malinkaya poprayka
ABN = UPPER(CHRTRAN(ALLTRIM(THISFORM.text1.Value),' ','*'))
TEL = UPPER(CHRTRAN(ALLTRIM(THISFORM.text2.Value),' ','*'))
15 мар 06, 14:17    [2451005]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
karly™
Guest
Посмотри еще до кучи вот это решение
Само решение несколько о другом, но в примере разбирается именно твоя задача.
15 мар 06, 14:43    [2451205]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
jonvtur
Member

Откуда:
Сообщений: 125
написал так:
SELECT sprav
PUBLIC t,l
IF THISFORM.optiongroup1.Value =1
t = ALLTRIM(THISFORM.text1.Value)
l= LEN(t)
IF !EMPTY(THISFORM.TEXT1.Value)
SET FILTER TO LEft(CHRTRAN(sprav.tel,substr(sprav.tel,2,1),SPACE(0)),l) == t
endif
ELSE
SET FILTER TO LEft(CHRTRAN(sprav.tel,substr(sprav.tel,2,1),SPACE(0)),l) == t
endif
GO TOP
Thisform.Grid1.Refresh


получается что: набираешь 2-10-11, он Grid необновляет, обновляет только после того как, мышкой переходишь на грид а затем обратно в text1. Только тогда получается желаемый результат.
А надо чтобы после каждого нажатия символа обновлял ГРИД (допустим: вводим 2-11, он долже в гриде уже отфильтровать (set filter to) таблицу)!
17 мар 06, 11:10    [2459019]     Ответить | Цитировать Сообщить модератору
 Re: Организация поиска по полям?  [new]
jonvtur
Member

Откуда:
Сообщений: 125
поменял процедуру на InteractiveChange
и вписал измененный код:
SELECT sprav
PUBLIC t,l
IF THISFORM.optiongroup1.Value =1
t = ALLTRIM(THISFORM.text1.Value)
l= LEN(t)
IF !EMPTY(THISFORM.TEXT1.Value)
SET FILTER TO LEft(CHRTRAN(sprav.tel,substr(sprav.tel,2,1),SPACE(0)),l) == t
ELSE
IF !EMPTY(THISFORM.TEXT1.Value)
SET FILTER TO LEft(CHRTRAN(sprav.tel,substr(sprav.tel,2,1),SPACE(0)),l) == t
endif
endif
ELSE
IF !EMPTY(THISFORM.TEXT1.Value)
SET FILTER TO LEft(CHRTRAN(sprav.tel,substr(sprav.tel,2,1),SPACE(0)),l) == t
ELSE
IF !EMPTY(THISFORM.TEXT1.Value)
SET FILTER TO LEft(CHRTRAN(sprav.tel,substr(sprav.tel,2,1),SPACE(0)),l) == t
endif
ENDIF
endif
GO TOP
Thisform.Grid1.Refresh


Спасибо всем за помощь!!!
17 мар 06, 11:24    [2459090]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить