Последняя версия DataExpress 3 beta от 9 августа 2020 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Расширения
ИзображениеИзображениеИзображение

Программная сортировка данных

Все вопросы, связанные с написанием скриптов и SQL-запросов.
Frost
Эксперт
Сообщения: 17
Зарегистрирован: Ср апр 12, 2017 1:17 pm

Программная сортировка данных

Сообщение Frost » Вт авг 27, 2019 4:18 pm

Сортировка задается в дизайнере. В режиме RunTime меняется кликом на заголовке таблицы. Вопрос: можно ли отсортировать данные в таблице программно и можно ли программно выяснить какой столбец имеет сортировку? Спасибо.

Аватара пользователя
admin
Разработчик
Сообщения: 5045
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 39 раз
Поблагодарили: 308 раз

Программная сортировка данных

Сообщение admin » Вт авг 27, 2019 7:54 pm

Пока нет возможности.

Frost
Эксперт
Сообщения: 17
Зарегистрирован: Ср апр 12, 2017 1:17 pm

Программная сортировка данных

Сообщение Frost » Пт сен 06, 2019 9:41 am

Кода получилось на чуть более ста строк. Вместо этой "простыни" я, пожалуй, лучше опишу саму идею.

Итак, как я уже говорил, нам не доступны разделительные линии в фиксированной области (в области заголовка). По дефолту у меня на Win7 они рисуются черным цветом толщиной в 1px. Эта маленькая "визуальная деталь" вносит диссонанс в общий дизайн таблицы, выполненый в пастельных желтоватых тонах. Раз мы не можем влиять на заголовок - скроем его. Но нет... При скрытии заголовка возникает трабла с открытием записи из первой строки таблицы (см мой пост в начале). Хорошо, тогда просто накроем заголовок панелью и уже на ней нарисуем то что нам нужно (линии нужного вида и текст заголовков колонок). Выглядит отлично. Но топерь сложно манипулировать геометрическими размерами полученной таблицы, так как она состоит из двух элементов (TFormView и TPanel). Ок. Разместим их внутри еще одной панели TPanel (я назвал ее Substrate, что переводится как подложка). Теперь мы легко можем менять позицию таблицы и ее размеры. В результате этих манипуляций мы получили желаемый вид таблицы, но потеряли два важных свойства, а именно возможность менять ширину колонок перетаскиванием их границ мышью, а так же возможность смены сортировки, кликом по заголовку. Если первое свойство еще как то можно попробовать реализовать через свойство TPanel.OnMouseMove, то сортировку программно не реализовать вообще (см. ответ разработчика).

Позитивные мысли и идеи по предложенной теме приветствуются. С уважением, Frost.

Аватара пользователя
Develop-Soft
Сообщения: 1639
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 122 раза
Поблагодарили: 444 раза
Контактная информация:

Программная сортировка данных

Сообщение Develop-Soft » Пт сен 06, 2019 9:50 am

Frost писал(а):Позитивные мысли и идеи по предложенной теме приветствуются.

Отец, да тебя надо в команду разработки DX привлекать... ;)
Можно попробовать из винапи дёрнуть эмуляцию клика мыша и ретранслировать навниз (туда, где спрятан заголовок).

Frost
Эксперт
Сообщения: 17
Зарегистрирован: Ср апр 12, 2017 1:17 pm

Программная сортировка данных

Сообщение Frost » Пт сен 06, 2019 10:16 am

Спасибо. Я с удовольствием присоединюсь к команде, если поступит приглашение. ;) И еще - я не отец. Еще молод для отцовства. Хотя, может уже и пора... мда. :D

P.S. Не в ту ветку разместил пост-ответ. Сейчас продублирую в то место, где был задан вопрос.

Аватара пользователя
Develop-Soft
Сообщения: 1639
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 122 раза
Поблагодарили: 444 раза
Контактная информация:

Программная сортировка данных

Сообщение Develop-Soft » Пт сен 06, 2019 10:24 am

Frost писал(а):я не отец. Еще молод для отцовства.

Это была форма фамильярно-братского обращения. ;) (Моему отцу бы более 70-ти...)

Аватара пользователя
Develop-Soft
Сообщения: 1639
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 122 раза
Поблагодарили: 444 раза
Контактная информация:

Программная сортировка данных

Сообщение Develop-Soft » Пт сен 06, 2019 11:12 am

Frost писал(а):Позитивные мысли и идеи по предложенной теме приветствуются.

Мысли: dxdb_icon xy_mouse_click


Вернуться в «Программирование в DataExpress»