Access 2002

Интересные моменты


Если вы хотите более подробно ознакомиться с семействами, начните с изучения исходного кода класса Multi Pi к. В нем используются все методы семейств (Add, Remove и Item) и, кроме того, все механизмы работы со списками с множественным выбором. Содержащиеся здесь процедуры перемещения выбранных элементов вверх и вниз по списку представляют особый интерес, так как в них применяются наиболее передовые характеристики коллекций.

Кроме того, несомненный интерес представляет код, копирующий вашу таблицу в массив aFul 1 Array. В этом коде используется метод GetRows набора записей, предоставляющий возможность получить все записи с помощью одного-единст- венного оператора. Вместо того чтобы просматривать набор в цикле запись за записью, вы вызываете этот метод, и он возвращает сразу все записи в виде массива данных типа Variant. В приведенном ниже фрагменте, взятом из процедуры RetrieveData модуля класса MultiPik, записи помещаются в массив, а затем просматриваются в цикле, но уже не на диске, а в памяти.

Итак, задача решена, но не слишком ли сложный путь мы выбрали? Нельзя ли найти более простой способ реализации подобного мультисписка? Можно, и мы сделали это в форме frmMultiPikTable. В ней мультисписок создается на основе класса Multi Pi kTables, а данные для списков хранятся в таблице с дополнительным логическим полем Selected, содержащим значение True, если элемент выбран пользователем. В ответ на щелчки, выполняемые на кнопках перемещения элементов между списками, значение этого поля в соответствующих записях таблицы изменяется. Поэкспериментируйте немного с формой frmMultiPikTable, и вы быстро поймете, как она работает.

Вполне возможно, что эта простая технология подойдет вам, но учтите, что она имеет серьезные недостатки. Рассмотрим их.

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

Комментарии закрыты