|
|
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Нужно решить проблему (класса грид) Есть условная таблица(курсор) Код Тазвание Цена 1-1 Товар1 10 2-3 Товар2 8 1-2 Товар3 9 При нажатии на колонку таблица должна сортироваться с пожеланием пользователя... Кликнул с шифтом добавился индекс если уже существует, то отсортировать asc/desc Кликнул с ctrl удалили индекс Пока приходит только одно решение... Каждый раз при клике пересобирать курсор с нужной сортировкой... типа select * from таблица order by cena desc, code asc Но существет проблемка с символьными кодами... 1-1 они сортируются через функцию _sort в классе колонке стоит имя функции для сортировки с параметрами в данном случае _sort(1,code) что б неБыло проблем с отображением типа: не правильно правильно 1-1 1-1 1-10 1-2 1-2 1-10 Но для сортировки через функцию надо уже совсем другой селект типа: select *, _sort(1,code) as Col1 from таблица order by Col1,cena Где Col1 это имя колонки (соответственно при следующем селекте уже делать анализ) если такая колонка существует, то просто выбрать ее(для ускорения) Но вся Эт идеология через-Чур муторная получается... Может кто-то сталкивался с такой проблемой и может направить на путЪ истинный Сейчас грид работает с сортировкой по одному полю... И туда еще куча прибамбахов натыкано... Типа красивая всплывающая подсказка, фильтр (собери сам :) ), DragAndDrop внутри и с паралельных проектов... и т. д. Разрушать все Это не хочется... Но как говорится, кто платит то и музыку заказывает... С Ув. Игорь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2008, 12:48 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2008, 13:07 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Дмитрий Маликовselect *, val(substr(code, 1, atc("-", code) -1)) as code1, val(substr(code, atc("-", code) + 1)) as code2 order by code1, code2, Вопрос не вправильности селекта... Хоть ваш вариант и не подходит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2008, 13:13 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Если это курсор, то индексируй его через INDEX ON ... Проверка наличия индекса: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Смотри хэлп про функции KEY(), ORDER(), TAG(), DESCENDING(), TAG() при REQUERY() индексы обновляются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2008, 13:19 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
Dima TИндекс У меня сейчас и работает по одному индексу... А надо что Б в зависимости что пользователь наклацает, выстроить ему таблицу... по разным полям(некоторые отсортированы через функции) и некоторые по возрастанию, а некоторые по убыванию... SET ORDER TO не позволяет такого делать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2008, 13:33 |
|
||
|
Сортировка
|
|||
|---|---|---|---|
|
#18+
IgorProgrammer Dima TИндекс У меня сейчас и работает по одному индексу... А надо что Б в зависимости что пользователь наклацает, выстроить ему таблицу... по разным полям(некоторые отсортированы через функции) и некоторые по возрастанию, а некоторые по убыванию... SET ORDER TO не позволяет такого делать... А значения какого типа? для обратной сортировки чисел достаточно их с минусом взять: str(99999999 - [число], N) где N размер поля, 9999999 это девятка N+1 раз Для дат - str([максимальная дата] - [дата]) хуже всего со строками, хотя можно функцию сделать для переворачивания строки. Коды символов менять на 255-код например, если collate = RUSSIAN, то с этим еще поизвращатся придется. Изврат конечно получится, но работать должно. Например сделать функцию конвертации строки Revert(MyField) такую чтобы возвращала значение в результате которого получается обратная сортировка по MyField, тогда для тех полей что надо в обратном порядке эту функцию задействовать. Например: index on str(Field1) + Revert(Field2) + Field3 ... Второй вариант твой селект ID записей из исходного курсора, затем в исходном курсоре поле "порядок сортировки" и заполнить по RECNO() первого и отсортировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2008, 13:58 |
|
||
|
|

start [/forum/search_topic.php?author=smartyn&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 611ms |
| total: | 777ms |

| 0 / 0 |
