Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с поиском по grid / 7 сообщений из 7, страница 1 из 1
25.03.2008, 12:48
    #35211790
Timofey781
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с поиском по grid
Доброго времени суток! Я новичок и пока мне трудно разобратся. Вопрос следующий:
Есть форма mform, на ней грид grid1, текстовое поле и кнопка. В гриде 6-ть колонок с разными данными (имя, адрес и т.д). RecordSource у грида из table1 данные хранятся именно там.
Необходимо что бы вводя любое искомое в text1 и нажимая кнопку оно выделялось в гриде.
Пробовал с locate и set filter. С locate разобраться не получилось. set filter работает но только тот который идет первый. Если я ставлю 6-ть фильтров на кнопку поиска то срабатывает только первый:

IF NOT USED("table1")
USE "table1" excl IN 0
ENDIF
sele table1
select table1
set filter to alltrim(thisform.text1.value)$alltrim(table1.Namesite)
set filter to alltrim(thisform.text1.value)$alltrim(table1.count)

остальные игнорируются... (

Буду благодарен за любые камменты. Извините если вопросы покажутся тупыми
P.S поиском по форуму пользовался но разобраться пока не получается.
Спасибо в любом случае.
...
Рейтинг: 0 / 0
25.03.2008, 13:06
    #35211866
Помогите пожалуйста с поиском по grid
Timofey781set filter to alltrim(thisform.text1.value)$alltrim(table1.Namesite)
set filter to alltrim(thisform.text1.value)$alltrim(table1.count)

остальные игнорируются... (

Настройки не могут накапливаться. Действует всегда только последняя настройка. В locate, в прочем как и в set filter, условия отбора объединяются логическими операторами OR или AND.
...
Рейтинг: 0 / 0
25.03.2008, 13:07
    #35211872
Помогите пожалуйста с поиском по grid
Никаких фильтров не нужно

x = table1.Namesite
y = thisform.text1.value

LOCATE FOR table1.Namesite = y
IF FOUND()= .F.
WAIT "Нету таких у нас..." WINDOW NOWAIT
LOCATE FOR table1.Namesite = x && возвр. на ту запись, где стояли до поиска
ENDIF

thisform.Refresh() - надо обязательно обновить форму
thisform.Grid1.SetFocus - и установить фокус на Grid
...
Рейтинг: 0 / 0
25.03.2008, 13:17
    #35211904
Timofey781
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с поиском по grid
Спасибо! Буду разбираться
...
Рейтинг: 0 / 0
25.03.2008, 17:17
    #35212884
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с поиском по grid
то что ты хотел по фильтрам можно сделать так
обычно все что тебе надо пихаестя в 1 или несколько прог
потом set proc to .. additive и дальше вызываешь

Add_filter([kol=1])

* --------------------------
Func Add_filter
PARAM m.fil , From_Begin
Priv _fil
IF ! Empty( m.Fil ) && Если уже есть - не добавлять
m.Fil = Norm( m.Fil )
* а если там хитрый фильтр - типа OR - то может быть некорректно
* ( kol >1 or kol<100 ) - kol < 1
IF m.Fil $ Filter() && чтобы 2 раз не вешать
Retu .t.
ENDIF
ENDIF

If From_Begin
_fil= Add_Cond1 (m.Fil , Filter() )
Else
_fil= Add_Cond1 (Filter() , m.Fil)
Endif
Set filter to &_fil
* --------------------------
* было m.From_Right справа (можно просто поменять параметры местами !!!)
* теперь .T. - без скобок
* и не ставлю скобок если не надо
* Usl = Name_Gp=""СЛОHИМСКОЕ ТОАО "СВИТАHОК" "
* !!!!!!!! Внимание если в строке уже были кавычки то Norm( Usl) --> NAME_GP="" !!!

Func Add_Cond1
Para Old ,add1 , No_Skobki

IF Empty(m.Old)
Retu m.add1
Endif

IF Empty(m.add1)
Retu m.Old
Endif
* ---------------------------------------------
* Оба не пустые
IF m.No_Skobki
Retu m.Old + ' AND ' + m.add1
ENDIF
* Скобки только в случае если надо (есть OR)
* NOT имеет высший приоритет над AND

m.Old = NORMALIZE(m.Old)
m.Add1 = NORMALIZE(m.Add1)

* && '.NOT.' $ m.Old OR
* Добавлять скобки только если их нет

IF '.OR.' $ m.Old AND ;
! ( Left(m.Old,1) ='(' AND Right(m.Old,1) =')' )
m.Old = '('+m.Old+')'
ENDIF

IF '.OR.' $ m.add1 AND ;
! ( Left(m.Add1,1) ='(' AND Right(m.Add1,1) =')' )
m.add1 = '('+m.add1+')'
ENDIF

Retu NORMALIZE ( m.Old + ' AND ' + m.add1 ) && ! .AND.
* ------------------------------------------------
...
Рейтинг: 0 / 0
26.03.2008, 05:21
    #35213669
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с поиском по grid
Чуть поправил возврат на ту запись где стояли!!!

"Сергей Емельянов" <nospam@sql.ru>; сообщил/сообщила в новостях следующее:
news:5455374@sql.ru...

> Автор: Сергей Емельянов
> Никаких фильтров не нужно
>
x = RecNo("table1.Namesite")
> y = thisform.text1.value
>
> LOCATE FOR table1.Namesite = y
> IF FOUND()= .F.
> WAIT "Нету таких у нас..." WINDOW NOWAIT
>

&& Ну это же медленно!!! LOCATE FOR table1.Namesite = x && возвр. на ту
запись, где стояли до поиска
goto record (x)


> ENDIF
>
> thisform.Refresh() - надо обязательно обновить форму
> thisform.Grid1.SetFocus - и установить фокус на Grid
> Тема Ответить Сообщение
>


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
26.03.2008, 11:46
    #35214318
MiklS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите пожалуйста с поиском по grid
Круто! И кто же Вс так надоумил?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
x = table1.Namesite
y = thisform.text1.value

LOCATE FOR table1.Namesite = y
IF FOUND()= .F.
   WAIT "Нету таких у нас..." WINDOW NOWAIT 
   ????? LOCATE FOR table1.Namesite = x && возвр. на ту запись, где стояли до поиска ?????
ENDIF

thisform.Refresh() - надо обязательно обновить форму
thisform.Grid1.SetFocus - и установить фокус на Grid


x = RECNO() - > GO (x) И не нужно ни чего искать

А вообще интерактивный поиск в Grid
В TextBox1.InterActiveChange
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
LOCAL nRec, nLen
nRec=RECNO()
IF !EMPTY(This.Value)
   nLen=LEN(ALLTRIM(This.Value))
   LOCATE FOR UPPER(LEFT(Table1.Pole1, nLen)) == UPPER(ALLTRIM(This.Value))
   IF !FOUND()
      GO (nRec)
   ENDIF
   ThisForm.Grid1.Refresh
ENDIF
И ни каких проблем.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с поиском по grid / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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