1

Тема: Delphi сортування у таблиці

Для сортування по полю написав так:

procedure TOrchardProgr_Fr.BuName_MnItClick(Sender: TObject);
begin
  NS_ADOTb.IndexFieldNames:='Name sort';
end;

Скомпілювалось нормально.

Та при натиснені на MenuItem(BuName_MnIt)

Випливає повідомлення про помилку:
"Аргументи мають неправильний тип, лежать поза межами припустимого діапазону, або конфліктують один з одним.

Підкажіть де мій промах

2

Re: Delphi сортування у таблиці

Важко щось вгадувати, але швидше за все помилка в невірному індексі.
А так то - дебажте вглиб :)

Тут мала би бути якась влучна фраза(вибачте, що витратив кілька секунд вашого часу на прочитання).
Подякували: Romanvolja1

3

Re: Delphi сортування у таблиці

Romanvolja
Якщо я правильно пам'ятаю, то туди лише назву індекса можна вписувати, по якому треба сортувати. Якщо треба сортувати по довільних полях, то треба використовувати ADOQuery і в кінець запиту додавати ORDER BY.

Подякували: Romanvolja1

4

Re: Delphi сортування у таблиці

В мене б/д на основі MS Access.

Не знаю чому, та проблема була в тому, що назви полів в таблиці "Access" були з пробілом: "Name sort"

Змінив назву поля в таблиці "Access" на:  "NameSort"

procedure TOrchardProgr_Fr.BuName_MnItClick(Sender: TObject);
begin
  NS_ADOTb.IndexFieldNames:='NameSort';
end;

І все запрацювало нормально.

5

Re: Delphi сортування у таблиці

Romanvolja
Воно мабуть подвійні лапки хотіло:

NS_ADOTb.IndexFieldNames:='"Name Sort"';
Подякували: Romanvolja1

6

Re: Delphi сортування у таблиці

Доброго вечора.

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

7

Re: Delphi сортування у таблиці

Це як? Основна таблиця задається через MasterSource.

8

Re: Delphi сортування у таблиці

koala написав:

Це як? Основна таблиця задається через MasterSource.

Саме так:

    IndexFieldNames = 'ID_Main'
    MasterFields = 'ID'
    MasterSource = Main_DSr

9

Re: Delphi сортування у таблиці

Якщо робити через *Query, то там за допомогою ORDER BY можна сортувати. А якщо у вас якийсь прямий доступ до бази, то можна проміжний датасет зробити. В старих Делфях є зв'язка TClientDataSet+TDataSetProvider, а у нових є іще й TFDMemTable. В обох випадках ви можете отримати дані з початкового набору даних, трансформувати їх, і уже потім вивести на екран. Щоправда, можливо треба буде ручками оновлювати проміжний датасет після оновлення початкового.

Подякували: Romanvolja1