Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Сортировка данных



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

1. Для сортировки с динамической поддержкой изменений используйте свойство SortOrder. Несколько полей разделяйте запятой. Для сортировки по убыванию, после названия поля добавляйте слово ‘DESC’. Сортировка происходит на уровне TRecordsViewEh, т. е. физически записи в массиве данных TRecordsListEh не перемещаются.

2. Для сортировки без динамической поддержки изменений используйте процедуру SortByFields. Правила формирование строки определяющей сортировку такое же, как и для SortOrder. Сортировка происходит на уровне TRecordsListEh, т. е. записи физически сортируются во внутреннем массиве данных и после этого компонент никак не следит за изменениями.

Когда для автоматической сортировки в DBGridEh задействован файл EhlibMTE, метод сортировки определяется глобальной переменной EhlibMTE.SortInView: Boolean.

Создание/удаление таблиц в памяти в режиме ‘stand-alone’.

MemTableEh позволяет создавать внутренний массив записей в режиме Design-time и в режиме Run-time. Прежде, чем создавать массив, Вы должны задать свойства компонента, для определения структуры полей.

Существует два способа сделать это:

Вы можете добавить определения полей в свойстве FieldDefs. В режиме Design-time, двойной-щелчкок в инспекторе объектов на свойстве FieldDefs открывает окно редактора коллекии. Используйте редактор, чтобы добавить, удалить, или изменить свойства определения поля. В режиме Run-time, очистите все определения и используйте метод AddFieldDef, чтобы добавить новое определение поля. Для каждого нового определения поля, задайте свойства объекта TFieldDef чтобы установить желаемые атрибуты поля.

Кроме того вы можете использовать жеские (pesistent) поля. В режиме Design-time, двойной-щелчкок на dataset’е, открывает окно редактировани полей. В редакторе полей, нажмите правую кнопу мышки и выберите команду “New Field”. Впишите основные свойства вашего поля. После создания pesistent поля, Вы можете изменить свойства поля в Инспекторе обьектов выбрав требуемое поле в редакторе Полей.

Чтобы создавать внутренний массив в режиме Design-time, щелкните правой кнопкой мышки на dataset’е и выберите ‘Create DataSet’. Эта команда не появляется в контекстном меню пока Вы не определите всю необходимую информацию.

Чтобы создать внутренний массив режиме Run-time, вызовите метод CreateDataSet.

Если у компонента задано свойство DataDriver, то внутренний массив создается автоматически при активизации MemTable’а.

Закрытие датасета в режиме ‘stand-alone’ не уничтожает внутренний массив данных. Для закрытия с одновременным уничтожением всех данных и структуры массива используйте метод DestroyTable.

Для очисти всех записей внутреннего массива используйте метод EmptyTable. Структура массива и активность датасета не изменяются.

Работа с компонентом в режиме ‘with datadriver’.

Режим ‘with datadriver’ работает, когда присвоено свойство TMemTableEh.DataDriver. При активизации датасета внутренний массив данных создается автоматически при активизации MemTableEh’а. Структура полей предоставляется компонентом DataDriver.

Если свойство FetchAllOnOpen установелно в True, то при открытии MemTableEh загружает все записи из DataDriver’а. При FetchAllOnOpen = False MemTableEh автоматически не загружает записи, это должна делать программа или другой компонент. Для загрузки записей необходимо выполнить метод FetchRecords. Метод принимает один параметр - количество записей, которые вы хотите догрузить. Чтобы загрузить все записи, передайте в качестве значения параметра -1. При отображении данных в компоненте TDBGridEh Grid вызывает FetchRecords через интерфейс IMemTableEh чтобы отобразить все видимые записи на экране. По мере движения по DBGridEh вниз, он повторно вызывает FetchRecords, передавая в качестве параметра нужное количество записей.

В режиме ‘with datadriver’ все изменения передаются в метод ApplyUpdates компонента TDataDriver. Если свойство CachedUpdates = False то изменения передаются сразу после Post’а записи, если CachedUpdates = True то изменения передаются при вызове метода ApplyUpdates.





Дата публикования: 2014-11-28; Прочитано: 1268 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...