Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поиск по grid / 6 сообщений из 6, страница 1 из 1
13.11.2008, 14:09
    #35651732
nastasjal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по grid
У меня на форме есть combobox, grid (данные в которым берутся из localview с параметром) и edit. Как сделать так, чтоб при вводе строки в edit в гриде курсор переходил на эту ячейку? Просто получается так, что когда я выбираю select'ом номер нужной строки и пишу

thisform.grdrasp.ActivateCell(st,1)
thisform.grdRasp.SetFocus

то курсор ставится на последнюю строку текущей страницы в гриде. Т.е. насколько я понимаю надо как-то держать в памяти (постоянно) номер текущей ячейки и т.п.

может кто подскажет как сделать этот поиск?
...
Рейтинг: 0 / 0
13.11.2008, 14:16
    #35651770
Поиск по grid
nastasjal,
во-первых, забудьте термин "ячейка" по отношения к гриду, во-вторых запомните раз и навсегда, что в гриде ничего нет и ничего Вы в нем не найдете. Искать можно и нужно только в таблице/курсоре, содержимое которого показывает грид. При нахождении нужной записи указатель в гриде встанет автоматически на нужную запись.
...
Рейтинг: 0 / 0
13.11.2008, 14:25
    #35651808
nastasjal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по grid
Так а как написать, я не пойму?
Я пишу так

Код: plaintext
1.
2.
SELECT RECNO() FROM rasp WHERE nk=nk1 AND kod_dlg=kod1 into ARRAY st
thisform.grdrasp.ActivateCell(st, 1 )
thisform.grdRasp.SetFocus

Только почему-то если полученный в запросе номер больше чем число строк отображаемых на странице грида то курсор ставится на последнюю строку на отображаемой странице. Т.е. по идее еще надо делать doscroll.
...
Рейтинг: 0 / 0
13.11.2008, 14:27
    #35651812
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по grid
Grid - это окно, через которое вы смотрите на таблицу. Вы, конечно, можете ткнуть пальцем в окно, но это не означает, что вы нашли ячейку таблицы.

В Grid, максимум, что вы можете сделать - это определить номер строки и столбца в видимой части Grid. Т.е. номер столбца считая от правой границы Grid и номер строки, считая от верхней границы Grid. Именно эти координаты и используются в свойствах и методах возвращающих активную строку или столбец. В частности Grid.ActivateCell().

Но, разумеется, видимая область - это не все строки и столбцы таблицы. Это просто то, что видно в данный момент.

Как следствие, если вы пытаетесь передать в метод Grid.ActivateCell() номер строки больший, чем видно в Grid, то и попадаете в самый конец.

Чтобы перейти на нужную запись таблицы предпринимать какие-то действия в Grid (на окне) - бессмысленно. Необходимо сделать этот переход в самой таблице. А уж в окне (в Grid) найденная запись отобразится автоматически.

Код: plaintext
1.
2.
3.
select rasp
LOCATE FOR nk=nk1 AND kod_dlg=kod1 
thisform.grdRasp.SetFocus()
...
Рейтинг: 0 / 0
13.11.2008, 14:30
    #35651827
Поиск по grid
nastasjalТак а как написать, я не пойму?
Я пишу так

Код: plaintext
1.
2.
SELECT RECNO() FROM rasp WHERE nk=nk1 AND kod_dlg=kod1 into ARRAY st
thisform.grdrasp.ActivateCell(st, 1 )
thisform.grdRasp.SetFocus

Только почему-то если полученный в запросе номер больше чем число строк отображаемых на странице грида то курсор ставится на последнюю строку на отображаемой странице. Т.е. по идее еще надо делать doscroll.
Еще раз: ищут в таблице, а не в гриде. При этом указатель записи надо поставить на найденную запись. Забудьте про ActiveCell(). "nj совершенно из другой оперы.
Код: plaintext
1.
2.
3.
SELECT RECNO() FROM rasp WHERE nk=nk1 AND kod_dlg=kod1 into ARRAY st
go st
thisform.grdRasp.Refresh()
thisform.grdRasp.SetFocus
...
Рейтинг: 0 / 0
13.11.2008, 15:50
    #35652157
nastasjal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по grid
Спасибо болльшое! Получилось. Просто я не думала что grid отображает ту страницу, на которой стоит курсор в таблице.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поиск по grid / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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