Показать сообщение отдельно
  #1  
Старый 13.09.2017, 23:14
Аватар для Guaho
Guaho Guaho вне форума
Начинающий
 
Регистрация: 27.08.2017
Сообщения: 173
Версия Delphi: Delphi7
Репутация: 10
По умолчанию Сортировка в Lookup-поле

Всем привет!
Уже много лет не могу найти ответ на довольно важный вопрос... Я разработал несколько файл-серверных БД (таблицы формата MSAccess), и в каждом проекте возникает необходимость в сортировке Lookup-полей. Сортировка, конечно, работает, но сортирует она по коду записи в справочной таблице, а мне нужно, чтобы сортировка шла по текстовому полю "Наименование" из этой справочной таблицы.
Например, у меня есть таблица "Технические параметры", одно из полей которой - ссылочное "Единицы измерения". Мне нужна сортировка по наименованию единицы измерения, а не по коду записи, вот в чём вопрос.
Конечно, я придумал способ, как это сделать, но он сильно корявый: в "основную" таблицу, содержащую Lookup-поле, вводится дополнительное текстовое поле, в котором по Post сохраняется интересующее нас текстовое значение из справочной таблицы, а при попытке сортировки по данному полю идёт подмена для осуществления сортировки с задействованием данных скрытого дополнительного поля.
Решение совершенно не изящное, т.к. приводит к ненужному дублированию данных, и, кроме того, необходимо периодически выполнять процедуру обновления упомянутых текстовых сортировочных данных, дабы они были актуальны.
И вот вопрос - а может я дурак и просто не знаю очевидного, простого решения данного вопроса? Ведь ситуация, по-моему, очень распространённая, когда хочется сортировать не по коду записи, а по отображаемым в лукап-столбце данным... Может есть таки решение?
Ответить с цитированием