powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сортировка в гриде по клику в заголовке
16 сообщений из 16, страница 1 из 1
Сортировка в гриде по клику в заголовке
    #34139729
amto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На форме есть грид. Источник данных - курсор. Курсор формируется Select-ом в Click кнопки. Кнопок несколько и структура курсора, соответственно, меняется.
Нужно вставить сортировку по Click в заголовках столбцов. Как это можно сделать программно?
Не хочется загромождать конструкцию кучей грид-ов и курсоров.
Подскажите, пожалуйста
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34139813
Cyv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Поиск по слову "сортировка"
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34139817
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри тут http://www.caws.atnet.ru/vfox/grid.html
Может поможет, как пример.
С уважением, Алексей
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34139860
ANDREYMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бери селект, который подгружен, меняй выражение order by как нужно и обновляйся, предварительно перепропиши его в RowSource
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34139865
ANDREYMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для курсора, как и для таблицы, можгно организовать индексы - это совсем просто и не потребует повторных вызовов.
Соответственно на каждой кнопке просто меняешь текущий индекс (пересоздаешь)
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34140132
amto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое всем. У нас тут на окраинах Руси уже почти ночь. Постараюсь разложить по-полочкам полученную информацию. Буду признательна всем, кто откликнется

2Aleksey-K - забыла указать версию 5 :(

2ANDREYMF - про селект понятно. Но для этого мне надо чтобы клик в заголовке соответствующего столбца обрабатывался. В общем-то уже поняла, что надо класс создавать. Но вот с этим пока туго.

С уважением,
Елена
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34142396
Align
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотри в решениях FoxClub-a, например,
http://www.foxclub.ru/sol/index.php?act=view&id=332
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34142603
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поделимся изобретенным велосипедом :))
(но без классов)
Запихиваешь в каждый Header1.Click:
(только подставляешь свою таблицу; есть некот. ограничения на названия полей, но все работает)
Код: 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.
IF !USED("s_calls") OR !This.Parent.Visible OR EMPTY(This.Parent.ControlSource)
	RETURN
ENDIF
priv curAlias
curAlias=select()
select s_calls
nTags=TAGCOUNT()
tagExist=.F.
tagName=lower(substr(This.Parent.ControlSource,atc(".",This.Parent.ControlSource)+ 1 ))
FOR i= 1  TO nTags
	IF lower(TAG(i))=tagName
		tagExist=.T.
	ENDIF
ENDFOR
IF !tagExist
	INDEX ON &tagName TAG &tagName
ELSE
	SET ORDER TO TAG &tagName
ENDIF
GO TOP
This.Parent.Parent.SetAll("BackColor",RGB( 255 , 255 , 255 ),"Header")
This.BackColor=RGB( 255 , 255 , 0 )
This.Parent.Parent.Refresh

select (curAlias)
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34143810
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amto. В общем-то уже поняла, что надо класс создавать. Но вот с этим пока туго.
С уважением,
Елена
Так у вас версия 5!!!
Какие класса?! "Во времена Шекспира не было сигарет Друг !!!"
Придется каждый Header программировать.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34144332
S866
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей - не передергивайте - 5-ка объектно ориентированный язык с возможностью создания классов
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34144411
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S866Алексей - не передергивайте - 5-ка объектно ориентированный язык с возможностью создания классов
В контексте обсуждаемой темы - нет.
Нет класса Column, нет класса Header, нет возможность указать свои классы Header в колонках, нет возможности указать свои классы Column в GRID!
Чем в этой ситуации поможет тот факт, что VFP OOП ?
Решение, предложенное Andrey Ts как раз об этом и говорит.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34144441
Cyv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор5-ка объектно ориентированный язык с возможностью создания классов
Речь идёт(или шла) о классе Header который появился только начиная с 8-ой версии.
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34145371
amto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Не в моей воле перейти на последнюю версию, к сожалению.
Не стала мучиться, создала отдельные курсоры и гриды для каждой кнопки, наслаиваю их в форме друг на друга и показываю то, что необходимо в данный момент. Сортировку запихнула в клик каждого head таким образом (только не пинать!)

n1=n1*(-1)
thisForm.Grid1.RecordSource=""
if n1=1
sele p1,tbl1.p2,p3,..... from tbl1,tbl2 where tbl1.p2=tbl2.p2 order by p1 into cursor C1
endif
if n1=-1
sele p1,tbl1.p2,p3,..... from tbl1,tbl2 where tbl1.p2=tbl2.p2 order by p1 desc into cursor C1
endif
thisForm.Grid1.RecordSource='C1'
thisForm.Grid1.visible=.t.
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34146135
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я вот по началу тоже как Вы делал, т.е. нажал юзер хедер, выгрузил курсор из грида,
сделал выборку в курсор с нужным order by, подключил курсор к гриду, выставил
назад запись в гриде через recno().
весьма менингитная процедура...
потом просто на стадии инита формы индексировал свой курсор и дальше только
делал set order to. фишка в том что в 8-й версии у курсора есть опция READWRITE
что и дает возможность курсоры индексировать, а вот в 5й версии этого, поди, нет еще...

Так Вам может быть, подойдет какая-то такая тема, типа копирования базы в
какой-нить там отдельный каталог и тогда появится возможность индексации?
т.е. вместо курсора использовать базу. или полученный курсор сливать в базу, затем
выгружать курсор и юзать базу, индескировав ее предварительно. например делать это все
в папке ТЕМР, а на выходе из проги папку чистить. по-идее работать будет и быстрее и в программировании по-проще...
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34146810
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KOфишка в том что в 8-й версии у курсора есть опция READWRITE
что и дает возможность курсоры индексировать, а вот в 5й версии этого, поди, нет еще...

Для версий, начиная с VFP7

Код: plaintext
SELECT ... INTO CURSOR MyCursorWrite READWRITE

Для версий, начиная с VFP5

Код: plaintext
1.
2.
3.
SELECT ... INTO CURSOR MyCursorRead NOFILTER 
USE DBF("MyCursorRead") IN  0  AGAIN ALIAS MyCursorWrite
USE IN MyCursor

Полученный курсор MyCursorWrite будет уже редактируемым.
...
Рейтинг: 0 / 0
Сортировка в гриде по клику в заголовке
    #34148699
amto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СПАСИБО
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сортировка в гриде по клику в заголовке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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