Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поиск по гриду / 18 сообщений из 18, страница 1 из 1
23.01.2013, 15:41
    #38121633
MrIgorOK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
Помогите пожалуйста осуществить поиск по гриду.
Вот каким способом я пытаюсь сделать

LOCATE FOR upper(книги.раздел)=UPPER(ALLTRIM(thisform.text1.Value))
do while FOUND()

CONTINUE
enddo
IF !FOUND()
MESSAGEBOX('Запись не найдена')
ENDIF
thisform.Refresh

не понимаю почему не работает данный код, при любом исходе он выдаёт что запись не найдена,
ещё мне нужно что бы он как то хотя бы выделял что надёт в гриде....
...
Рейтинг: 0 / 0
23.01.2013, 15:54
    #38121667
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
А если убрать цикл вообще? :)
...
Рейтинг: 0 / 0
23.01.2013, 15:55
    #38121673
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
Работает все так как ты написал. Проанализируй свой код и исправь чтоб работало как тебе нужно.
...
Рейтинг: 0 / 0
23.01.2013, 15:58
    #38121682
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
MrIgorOKПомогите пожалуйста осуществить поиск по гриду.
Вот каким способом я пытаюсь сделать

LOCATE FOR upper(книги.раздел)=UPPER(ALLTRIM(thisform.text1.Value))
do while FOUND()

CONTINUE
enddo
IF !FOUND()
MESSAGEBOX('Запись не найдена')
ENDIF
thisform.Refresh

не понимаю почему не работает данный код, при любом исходе он выдаёт что запись не найдена,
ещё мне нужно что бы он как то хотя бы выделял что надёт в гриде....

А так:

SELECT Книги
LOCATE FOR UPPER(ALLTRIM(раздел))=UPPER(ALLTRIM(thisform.text1.Value))
DO WHILE NOT FOUND()
CONTINUE
ENDDO
IF !FOUND()
MESSAGEBOX('Запись не найдена')
ENDIF
THISFORM.Refresh
...
Рейтинг: 0 / 0
23.01.2013, 16:00
    #38121689
MrIgorOK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
AndreTM,

без цикла он переведёт курсор на второй найденый результат, а до 3, 4, 5 и т.д не дойдёт
...
Рейтинг: 0 / 0
23.01.2013, 16:03
    #38121704
MrIgorOK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
IgorNG,

проверил, работает как будто команды continue нет, курсор стоит на первом результате(
...
Рейтинг: 0 / 0
23.01.2013, 16:03
    #38121707
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
MrIgorOKAndreTM,

без цикла он переведёт курсор на второй найденый результат, а до 3, 4, 5 и т.д не дойдёт
А что, нужна последняя найденная запись?
...
Рейтинг: 0 / 0
23.01.2013, 16:04
    #38121711
MrIgorOK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
Dima T, я тоже думаю что должно работать, пересматривал код не один раз, да и не один день уже, вот решил обратиться за помощью
...
Рейтинг: 0 / 0
23.01.2013, 16:06
    #38121722
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
MrIgorOKAndreTM,
без цикла он переведёт курсор на второй найденый результат, а до 3, 4, 5 и т.д не дойдётА смысл? Надо найти последнюю подходящую запись?
Ну и с ALLTRIM() правильно посоветовали...
...
Рейтинг: 0 / 0
23.01.2013, 16:08
    #38121727
MrIgorOK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
IgorNG,
не совсем
в результате когда допишу поиск я хочу что бы в гриде он все совпадения например выделил, а если CONTINUE написать не в цикле он продолжает поиск до седующего совпадения а не до последнего, по этому без цикла я думаю ни как нельзя
...
Рейтинг: 0 / 0
23.01.2013, 16:12
    #38121736
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
MrIgorOKя хочу что бы в гриде он все совпадения например выделилА так можно? И смысл?
Где, по вашему, при этом будет находиться указатель текущей записи?
...
Рейтинг: 0 / 0
23.01.2013, 16:16
    #38121751
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
MrIgorOKIgorNG,
не совсем
в результате когда допишу поиск я хочу что бы в гриде он все совпадения например выделил, а если CONTINUE написать не в цикле он продолжает поиск до седующего совпадения а не до последнего, по этому без цикла я думаю ни как нельзя

Без цикла можно SELECTом выбрать все записи по заданному условию и показывать только их. Все зависит от решаемой задачи.
Если в Grid много строк, то искать подкрашенные непросто, да и красить геморно.
...
Рейтинг: 0 / 0
23.01.2013, 16:18
    #38121761
MrIgorOK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
AndreTM,

смысл в том что мне нужен нормальный поиск а не тот который находит только одну запись, выделение в гриде хочу зделать с помощью такого выражения thisform.Grid1.SetAll("BackColor", "IIF("не знаю что же написать здесь",RGB(255, 0, 0), rgb(0,0,0))","Column") которою помещю в цикл вместе с CONTINUE, но что то как то не получается(((
...
Рейтинг: 0 / 0
23.01.2013, 16:20
    #38121769
MrIgorOK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
IgorNG,

знаю, что не просто... Ну а что тогда сделать что бы он выводил все найденые результаты???
...
Рейтинг: 0 / 0
23.01.2013, 16:28
    #38121792
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
SELECT INTO CURSOR -> Grid.RecordSource
...
Рейтинг: 0 / 0
23.01.2013, 16:45
    #38121833
MrIgorOK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
AndreTMSELECT INTO CURSOR -> Grid.RecordSource
не понял что это
...
Рейтинг: 0 / 0
23.01.2013, 17:13
    #38121903
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
MrIgorOKвыделение в гриде хочу зделать с помощью такого выражения thisform.Grid1.SetAll("BackColor", "IIF("не знаю что же написать здесь",RGB(255, 0, 0), rgb(0,0,0))","Column")
надо написать
Код: sql
1.
thisform.Grid1.SetAll("DynamicBackColor", "IIF(upper(книги.раздел)=UPPER(ALLTRIM(thisform.text1.Value)),RGB(255, 0, 0), rgb(0,0,0))","Column")


и писать надо при открытии формы. В приведенном тобой коде оставь только
Код: sql
1.
thisform.Grid1.Refresh()
...
Рейтинг: 0 / 0
23.01.2013, 17:18
    #38121925
MrIgorOK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по гриду
Dima T,

Спасибо огромное, всё заработало))))
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поиск по гриду / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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