Альтернатива спискам

Источник: sgml

Для ускорения выбора нужного элемента справочника проще всего задействовать свойство "Автозаполнение" раскрывающегося списка. В большинстве случаев этого вполне достаточно, но есть и исключения. Основные из них - выбор не по первым символам поля и по тем полям, которые в списке вообще не показаны. Есть еще много частных случаев, связанных как с поведением этого элемента управления, так и с особенностями проектируемого интерфейса.

В любом случае, одной из альтернатив раскрывающемуся списку является выбор с помощью дополнительной формы. Как передавать и возвращать значения при таком подходе - это отдельная проблема и существует много способов ее решения. Также, как и способов отбора записей в форме.

Самый простой, на мой взгляд, такой: создается подчиненная форма на основе запроса с параметрами, имена которых в точности соответствуют именам элементов управления главной формы, в которые и вводятся условия отбора записей. Так как запрос не содержит ссылок на конкретную форму, его можно использовать где угодно. Например:

PARAMETERS parInfo Text, parAvgWeight IEEESingle;
SELECT Apples.ID, Apples.Info, Apples.AvgWeight
FROM Apples
WHERE (((Apples.Info) LIKE "*" & parInfo & "*") 
      AND ((Apples.AvgWeight)>nz(parAvgWeight,-1)));

Здесь подразумевается, что в главной форме есть пара полей ввода с именами parInfo и parAvgWeight для задания фрагмента названия и минимального веса, в данном случае, яблок.

Плюс такого подхода - простота. Формы даже не содержат модулей. Минус - ограниченная функциональность и реализация лишь фильтрации записей, хотя во многих случаях требуется именно переход на определенную запись. Но и это поправимо.

Просто нужно организовать поиск в клоне набора записей формы с последующей синхронизацией через закладки. А как небольшое полезное дополнение можно организовать ещё и дублирование текущей записи.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=10356