Сортировка в листе по группе полей при клике по заголовку группы. Как?
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
Сортировка в листе по группе полей при клике по заголовку группы. Как?
Легко отсортировать список по колонке по клику на заголовке колонки, там однозначно определяется поле
А как сделать по группе?
А как сделать по группе?
- Игорь Столяров
- Ветеран движения
- Сообщения: 8016
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 94 раза
Сортировка в листе по группе полей при клике по заголовку группы. Как?
Т.к. стандартные шаблоны такую возможность не поддерживают, то можно обойти с 2-х сторон:
1. Прописать для колонки несколько полей сортировки (можно группы).
Например: при щелчке мышкой на колонке ДАТЫ, реальная сортировка будет выполняться по ДАТА+ВРЕМЯ+НОМЕР и т.д.
2. Воспользоваться возможностью мультисортировки.
Т.е. удерживая нажатой педаль CTRL щелкаем мшой последовательно по нескольким колонкам (например группы).
Прелесть в том, что можно задавать порядок сортировки для полей в группе. Отмена педаль SHIFT+мша.
Как-то так …
1. Прописать для колонки несколько полей сортировки (можно группы).
Например: при щелчке мышкой на колонке ДАТЫ, реальная сортировка будет выполняться по ДАТА+ВРЕМЯ+НОМЕР и т.д.
2. Воспользоваться возможностью мультисортировки.
Т.е. удерживая нажатой педаль CTRL щелкаем мшой последовательно по нескольким колонкам (например группы).
Прелесть в том, что можно задавать порядок сортировки для полей в группе. Отмена педаль SHIFT+мша.
Как-то так …

Make Clarion Great Again ! 
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
Сортировка в листе по группе полей при клике по заголовку группы. Как?
Это понятно, может быть я неправильно выразился. Вопрос именно по группе колонок в листе, т.е. они уже сгруппированы и у них есть общий заголовок, нужно отловить клик по заголовку группы и отсортировать по последовательности колонок, которые входят в этот набор в листе. Формат листа может быть настроен пользователем
-
- ✯ Ветеран ✯
- Сообщения: 5157
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Сортировка в листе по группе полей при клике по заголовку группы. Как?
Есть 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. 

- Игорь Столяров
- Ветеран движения
- Сообщения: 8016
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 94 раза
Сортировка в листе по группе полей при клике по заголовку группы. Как?
Понял.RaFaeL писал(а): 26 Декабрь 2018, 15:07нужно отловить клик по заголовку группы и отсортировать по последовательности колонок


Тогда действительно ловим событие мышки на LIST, проверяем попадание курсора в шапку и группу.
Разбираем текущий (!!!) состав LIST, через его Prop:Format и получаем колонки (точнее поля) в составе группы колонок.
По ним сортируем VIEW (или QUEUE если LIST по очереди) и отображаем. Опционально можно подсветить текст в шапке.
Т.е. технологически проблем нет, но возни много ...
Make Clarion Great Again ! 
- Дед Пахом
- Старичок
- Сообщения: 3284
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 48 раз
- Контактная информация:
Сортировка в листе по группе полей при клике по заголовку группы. Как?
может SortHeaderClassType слегка допилить?
С уважением, ДП
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
Сортировка в листе по группе полей при клике по заголовку группы. Как?
В С63 такого не нашел, proplist:MouseDownZone для группы выдает 2 (т.е. LISTZONE:Header) а ?List{PROPLIST:MouseDownField} выдает 0
Собственно только после этого и возник вопрос
Т.е. в С63 видимо никак?
- Игорь Столяров
- Ветеран движения
- Сообщения: 8016
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 94 раза
Сортировка в листе по группе полей при клике по заголовку группы. Как?
То же самое - не ловит в C63.
Ну если только отсекать координату по MouseY() относительно ?List{Prop:YPos}.
Make Clarion Great Again ! 
- morkovin
- Ветеран
- Сообщения: 934
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
- Контактная информация:
Сортировка в листе по группе полей при клике по заголовку группы. Как?
На фтп есть tinteractivefilter_clarion6.zip. Не пойму зачем париться? 

WBR, morkovin
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
Сортировка в листе по группе полей при клике по заголовку группы. Как?
Судя по описанию, это фильтр для броузов. Какое отношение он имеет к моей задаче?morkovin писал(а): 27 Декабрь 2018, 5:36На фтп есть tinteractivefilter_clarion6.zip. Не пойму зачем париться?
-
- ✯ Ветеран ✯
- Сообщения: 5157
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Сортировка в листе по группе полей при клике по заголовку группы. Как?
В десятке всё чётко - нажатие на группу даёт значение 7 (LISTZONE:GroupHeader). Не важно есть заголовки самих столбцов или их нет. Ещё есть недокументированное событие EVENT:HeaderPressed. Непонятно, что это. В классе используется, но нажатие на группу не отслеживается. Толи это событие не отрабатывает, толи ещё где-то что-то зашито. Надо разбираться. Это я к вопросу подправить класс "слегка"
.

We are hard at work… for you. 

-
- ✯ Ветеран ✯
- Сообщения: 5157
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Сортировка в листе по группе полей при клике по заголовку группы. Как?
Не хочу создавать тему. Но вдруг кому пригодиться.
Чем удобно? Забываем про алерты на нажатие мыши, отслеживании LISTZONE:HEADER и т.д.
Работает только, если включить:
Код: Выделить всё
?List{proplist:HasSortColumn} = True
We are hard at work… for you. 
