Сортування даних в компоненті tclientdataset стор

Ще один спосіб підвищити інтерактивність клієнтських частин DataSnap-додатку-жений полягає в наданні користувачам можливості здійснювати з отриманими даними деякі маніпуляції, такі як сортування або, індексування, без звернення до сервера доступу до даних.

Для сортування даних в компоненті TClientDataSet можна використовувати властивість IndexFieldNames. Крім цього компонент TClientDataSet володіє методами Add Index і Delete Index. Ці методи дозволяють зробити сортування даних на етапі виконання.

Для ілюстрації цієї можливості на форму клієнтської програми, яка містить дані з компонента TCI i entDataSet, додамо компонент Hi stBox і створимо обробник події AfterCpen компонента TCI i entDataSet:

for i: = 0 to ClientDataSetl.FieldList.Count-1 do begin // якщо по цьому полю можна сортувати дані

if (ClientDataSetl.Fields.Fields [i] is TStringField) or (ClientDataSetl.Fields.Fields [i] is TNumericField) or (ClientDataSetl.Fields.Fields [i] is TDateTimeField) then begin fn: = ClientDataSetl.Fields.Fields [ i] .FieldName; // то додаємо ім'я поля до списку ComboBoxl.Items.Add (fn); 11 і створюємо новий індекс ClientDataSetl.Addlndex (fn + 'Index', fn.

У цьому обробнику ми заповнюємо компонент TComboBox іменами полів, за значеннями яких можна здійснювати сортування (це об'єкти типу TNumericField, TDateTimeField, TStringField і їх спадкоємці, такі як TWideStringField, TIntegerField і т. Д.), І додаємо відповідні індекси до набору даних, що міститься в компоненті TCI i entDataSet.

Ще один обробник події пов'язаний з вибором користувачем імені поля, по якому здійснюється сортування:

begin fn: = ComboBoxl.Items.Strings [ComboBoxl.ItemIndex]; // змінюємо індекс

І, нарешті, нам слід встановити порядок сортування записів в наборі даних перед його відкриттям:

Тепер на етапі виконання в компоненті TLi stBox буде відображатися список полів компонента TCI i entDataSet, і вибір поля в цьому списку призведе до пересортовування записів (рис. 12.17).

Сортування даних в компоненті tclientdataset стор

Мал. 12.17. Вибір порядку сортування записів в компоненті ТСМеп10а1аБе1

Обговоривши деякі можливості по маніпулюванню даними, що надаються технологією ОагаБпар як такої, згадаємо, що ВагаБпар-сервер є СОМ-сервером. Це означає, що функціональність такого сервера може бути розширена за рахунок додавання додаткових методів до його інтерфейсу. Прикладів застосування додаткових методів для розширення функціональності серверів доступу до даних буде присвячений наступний розділ.