|
|
|
Сортировка по столбцам
|
|||
|---|---|---|---|
|
#18+
Всем привет! Может, кто чего подскажет. Хотелось бы вот что - щелкнуть на заголовке столбца грида и весь грид отсортировался бы по этому столбцу. Есть только один путь - индексация по полям и на клике по заголовку подключать соответствующий индекс? Или есть что-то встроенное в фоксе? Или вообще это можно сделать попроще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 10:39 |
|
||
|
Сортировка по столбцам
|
|||
|---|---|---|---|
|
#18+
В любом случае клик хидера обрабатывать нужно я лично делаю так как вы описали т.е. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 10:42 |
|
||
|
Сортировка по столбцам
|
|||
|---|---|---|---|
|
#18+
Только что сделал сортировка осуществляется путем введения параметра на ORDER BY в LV и при щелчке на header'e делается REQUERY() LV и подставляется новое значение на параметр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2006, 11:04 |
|
||
|
Сортировка по столбцам
|
|||
|---|---|---|---|
|
#18+
Hi Sea.Starry! В общем случае это весьма неоптимально - повторно исполнять запрос, тогда как вполне можно обойтись средствами самого клиента (VFP в данном случае) для изменения порядка следования строк. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2006, 19:23 |
|
||
|
Сортировка по столбцам
|
|||
|---|---|---|---|
|
#18+
И как мне сортировать например 8 столбцов мне нужно такая сортировка 7+1+4 Мне что делать 40 индексов для всех возможных ситуаций? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2006, 20:44 |
|
||
|
Сортировка по столбцам
|
|||
|---|---|---|---|
|
#18+
Sea.StarryИ как мне сортировать например 8 столбцов мне нужно такая сортировка 7+1+4 Это каким же хитрым образом пользователь должен щелкнуть по одному заголовку столбца, что попросить так отсортировать список? Sea.StarryМне что делать 40 индексов для всех возможных ситуаций? Делать индексы по мере необходимости . Неужели пользователь будет щелкать на все столбцы подряд? Щелкнул пользователь на столбец - проверяешь, есть ли нужный индекс. Если есть делаешь его главным, нет - создаешь. Поскольку сама суть выборки предполагает, что ее объем относительно небольшой, то время, потраченное на построение индекса не должно быть очень уж велико. В любом случае, время пересоздания запроса и время построения индекса по результату запроса будут сопоставимы. Кстати, вполне вероятно, что построить 40 индексов не займет так уж много времени. Все зависит от объема выборки. Можно еще вместо Grid использовать AtiveX ListView. В него уже "зашита" реакция на нажатие столбца. Ну, с небольшим программированием. Хотя тормоза будут при заполнении этого ListView. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2006, 20:55 |
|
||
|
Сортировка по столбцам
|
|||
|---|---|---|---|
|
#18+
Hi Владимир Очень просто программу Парус знаешь? Там через ctr+ mouse click можно задавать сортировку на несколько столбцов Начет ListView он не подойдет вообще лишь для небольшой группы данных а заполнять scanom этот красивый навороченный control мне нехочеться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2006, 22:38 |
|
||
|
Сортировка по столбцам
|
|||
|---|---|---|---|
|
#18+
Sea.StarryHi Владимир Очень просто программу Парус знаешь? Там через ctr+ mouse click можно задавать сортировку на несколько столбцов Так и с помощью GRID VFP такое не очень сложно сделать! Глянь тут:http://www.caws.atnet.ru/vfox/grid.html С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 08:30 |
|
||
|
Сортировка по столбцам
|
|||
|---|---|---|---|
|
#18+
В этом тормозном классе грида идет постоянное построение индексов. Так какая разница? lcOrder = "field ASC, field1 DESC" REquery() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 20:41 |
|
||
|
Сортировка по столбцам
|
|||
|---|---|---|---|
|
#18+
Sea.StarryВ этом тормозном классе грида идет постоянное построение индексов. Так какая разница? lcOrder = "field ASC, field1 DESC" REquery() Вы не очень внимательно изучали класс SMART_GRID 1. Если индекса нет, то он, разумеется, строится. 2. Если индекс уже когда-то был построен, то делается просто SET ORDER TO... 3. Если меняется направление сортировки, то достаточно SET ORDER TO.. ASCENDING (DESCENDING) 4. Если требуется строить составной индекс и добавляется (удаляется) колонка к индексу, то придется индекс перестраивать. А как вы хотите? Другого способа нет. Да и скорось построения индекса в VFP очень велика. Я полагаю на экране читать данные более,чем несколько тыс. строк не имеет смысла. А причем тут lcOrder = "field ASC, field1 DESC"?! Вы что каждый раз заново УДАЛЕННЫЙ View дергать собираетесь при щелчке по заголовку очередной колонки. Я вас уверю, что VFP индекс построит гораздо быстрее, чем сервер выполнит сортировку. Сортировка на сервера это вообще та операция, которуя надо избегать любым способом. Собственно говоря, клиент VFP как раз и позволяет все операции типа сортировка (да еще и по нескольким столбцам), допоиск и пр. переложить на клиента. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 22:00 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33725625&tid=1591685]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
154ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 438ms |

| 0 / 0 |
