Сортировка в листе по группе полей при клике по заголовку группы. Как?
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1378
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
Сортировка в листе по группе полей при клике по заголовку группы. Как?
Легко отсортировать список по колонке по клику на заголовке колонки, там однозначно определяется поле
А как сделать по группе?
А как сделать по группе?
- Игорь Столяров
- Ветеран движения
- Сообщения: 7377
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Сортировка в листе по группе полей при клике по заголовку группы. Как?
Т.к. стандартные шаблоны такую возможность не поддерживают, то можно обойти с 2-х сторон:
1. Прописать для колонки несколько полей сортировки (можно группы).
Например: при щелчке мышкой на колонке ДАТЫ, реальная сортировка будет выполняться по ДАТА+ВРЕМЯ+НОМЕР и т.д.
2. Воспользоваться возможностью мультисортировки.
Т.е. удерживая нажатой педаль CTRL щелкаем мшой последовательно по нескольким колонкам (например группы).
Прелесть в том, что можно задавать порядок сортировки для полей в группе. Отмена педаль SHIFT+мша.
Как-то так …![Smile :)](./images/smilies/icon_smile.gif)
1. Прописать для колонки несколько полей сортировки (можно группы).
Например: при щелчке мышкой на колонке ДАТЫ, реальная сортировка будет выполняться по ДАТА+ВРЕМЯ+НОМЕР и т.д.
2. Воспользоваться возможностью мультисортировки.
Т.е. удерживая нажатой педаль CTRL щелкаем мшой последовательно по нескольким колонкам (например группы).
Прелесть в том, что можно задавать порядок сортировки для полей в группе. Отмена педаль SHIFT+мша.
Как-то так …
![Smile :)](./images/smilies/icon_smile.gif)
За теми кто отстал - не возвращаться. (С) Кодекс
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1378
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
Сортировка в листе по группе полей при клике по заголовку группы. Как?
Это понятно, может быть я неправильно выразился. Вопрос именно по группе колонок в листе, т.е. они уже сгруппированы и у них есть общий заголовок, нужно отловить клик по заголовку группы и отсортировать по последовательности колонок, которые входят в этот набор в листе. Формат листа может быть настроен пользователем
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Сортировка в листе по группе полей при клике по заголовку группы. Как?
Есть proplist:MouseDownZone (MoouseMoveZone, MouseUpZone) и есть LISTZONE:Header и LISTZONE:GroupHeader. Я так понимаю надо проверить, чтобы ?List{PROPLIST:MouseDownRow}=0 и ?List{PROPLIST:MouseDownZone}=LISTZONE:GroupHeader (или LISTZONE:Header) и тогда посмотреть, что выдаст ?List{PROPLIST:MouseDownField}.
We are hard at work… for you. ![Smile :)](./images/smilies/icon_smile.gif)
![Smile :)](./images/smilies/icon_smile.gif)
- Игорь Столяров
- Ветеран движения
- Сообщения: 7377
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Сортировка в листе по группе полей при клике по заголовку группы. Как?
Понял.
![Smile :)](./images/smilies/icon_smile.gif)
![Smile :)](./images/smilies/icon_smile.gif)
Тогда действительно ловим событие мышки на LIST, проверяем попадание курсора в шапку и группу.
Разбираем текущий (!!!) состав LIST, через его Prop:Format и получаем колонки (точнее поля) в составе группы колонок.
По ним сортируем VIEW (или QUEUE если LIST по очереди) и отображаем. Опционально можно подсветить текст в шапке.
Т.е. технологически проблем нет, но возни много ...
За теми кто отстал - не возвращаться. (С) Кодекс
- Дед Пахом
- Старичок
- Сообщения: 3133
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 10 раз
- Поблагодарили: 28 раз
- Контактная информация:
Сортировка в листе по группе полей при клике по заголовку группы. Как?
может SortHeaderClassType слегка допилить?
С уважением, ДП
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1378
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
Сортировка в листе по группе полей при клике по заголовку группы. Как?
В С63 такого не нашел, proplist:MouseDownZone для группы выдает 2 (т.е. LISTZONE:Header) а ?List{PROPLIST:MouseDownField} выдает 0
Собственно только после этого и возник вопрос
Т.е. в С63 видимо никак?
- Игорь Столяров
- Ветеран движения
- Сообщения: 7377
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Сортировка в листе по группе полей при клике по заголовку группы. Как?
То же самое - не ловит в C63.
Ну если только отсекать координату по MouseY() относительно ?List{Prop:YPos}.
За теми кто отстал - не возвращаться. (С) Кодекс
- morkovin
- Ветеран
- Сообщения: 909
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Сортировка в листе по группе полей при клике по заголовку группы. Как?
На фтп есть tinteractivefilter_clarion6.zip. Не пойму зачем париться? ![Shocked :shock:](./images/smilies/icon_eek.gif)
![Shocked :shock:](./images/smilies/icon_eek.gif)
WBR, morkovin
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1378
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
Сортировка в листе по группе полей при клике по заголовку группы. Как?
Судя по описанию, это фильтр для броузов. Какое отношение он имеет к моей задаче?
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Сортировка в листе по группе полей при клике по заголовку группы. Как?
В десятке всё чётко - нажатие на группу даёт значение 7 (LISTZONE:GroupHeader). Не важно есть заголовки самих столбцов или их нет. Ещё есть недокументированное событие EVENT:HeaderPressed. Непонятно, что это. В классе используется, но нажатие на группу не отслеживается. Толи это событие не отрабатывает, толи ещё где-то что-то зашито. Надо разбираться. Это я к вопросу подправить класс "слегка"
.
![Very Happy :D](./images/smilies/icon_biggrin.gif)
We are hard at work… for you. ![Smile :)](./images/smilies/icon_smile.gif)
![Smile :)](./images/smilies/icon_smile.gif)
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Сортировка в листе по группе полей при клике по заголовку группы. Как?
Не хочу создавать тему. Но вдруг кому пригодиться.
Чем удобно? Забываем про алерты на нажатие мыши, отслеживании LISTZONE:HEADER и т.д.
Работает только, если включить:
Код: Выделить всё
?List{proplist:HasSortColumn} = True
We are hard at work… for you. ![Smile :)](./images/smilies/icon_smile.gif)
![Smile :)](./images/smilies/icon_smile.gif)