AutoSort TRxDBGrid+Zeos+Postgres

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

погляжу
AkANz
новенький
Сообщения: 26
Зарегистрирован: 16.03.2010 12:59:02
Откуда: Алтайский край

Сообщение AkANz »

Доброго времени суток.

Пакет rxnew 2.1.2.105
Добавил в папку с проектом exsortzeos.pas в разделе uses написал exsortzeos.
На форме лежит RxDBGrid.
При попытке скомпилировать ошибка в строке:
TFBDataSetSortEngine = class(TExDBGridSortEngine)

exsortzeos.pas(11,51) Error: Identifier not found "TExDBGridSortEngine"
exsortzeos.pas(11,51) Error: class type expected, but got "<erroneous type>"
exsortzeos.pas(13,15) Error: There is no method in an ancestor class to be overridden: "TFBDataSetSortEngine.Sort(TField,TDataSet,Boolean);"
exsortzeos.pas(14,15) Error: There is no method in an ancestor class to be overridden: "TFBDataSetSortEngine.SortList(AnsiString,TDataSet,Boolean);"
exsortzeos.pas(17,1) Fatal: There were 4 errors compiling module, stopping

Подскажите, пожалуйста, может я что-то не так прикрутил exsortzeos.pas.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

AkANz писал(а):TFBDataSetSortEngine = class(TExDBGridSortEngine)

Замени в тексте exsortzeos.pas TExDBGridSortEngine на TRxDBGridSortEngine
AkANz
новенький
Сообщения: 26
Зарегистрирован: 16.03.2010 12:59:02
Откуда: Алтайский край

Сообщение AkANz »

alexs писал(а):Замени в тексте exsortzeos.pas TExDBGridSortEngine на TRxDBGridSortEngine


Заменил. Дальше останавливается на строке:
procedure Sort(Field:TField; ADataSet:TDataSet; Asc:boolean);override;
с ошибкой:
exsortzeos.pas(13,15) Error: There is no method in an ancestor class to be overridden: "TFBDataSetSortEngine.Sort(TField,TDataSet,Boolean);"
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Посмотри реализацию в родителе этого метода
я сам зеосом не пользуюь - поэтому этот модуль выпал из правок :-(
поправь - сделай патчик, я его включу в исходники.
AkANz
новенький
Сообщения: 26
Зарегистрирован: 16.03.2010 12:59:02
Откуда: Алтайский край

Сообщение AkANz »

alexs писал(а):поправь - сделай патчик, я его включу в исходники.

Как делать патчик я пока не знаю :(
Подправил в следующих местах:
TFBDataSetSortEngine = class(TExDBGridSortEngine)
заменил на:
TFBDataSetSortEngine = class(TRxDBGridSortEngine) (по Вашему совету)
далее:
procedure Sort(Field:TField; ADataSet:TDataSet; Asc:boolean);override;
на:
procedure Sort(Field:TField; ADataSet:TDataSet; Asc:boolean; SortOptions:TRxSortEngineOptions);override;

procedure TFBDataSetSortEngine.Sort(Field:TField; ADataSet:TDataSet; Asc:boolean);
на:
procedure TFBDataSetSortEngine.Sort(Field:TField; ADataSet:TDataSet; Asc:boolean; SortOptions:TRxSortEngineOptions);

и
RegisterExDBGridSortEngine(TFBDataSetSortEngine, TZReadOnlyQuery);
RegisterExDBGridSortEngine(TFBDataSetSortEngine, TZQuery);
RegisterExDBGridSortEngine(TFBDataSetSortEngine, TZTable);
на:
RegisterRxDBGridSortEngine(TFBDataSetSortEngine, TZReadOnlyQuery);
RegisterRxDBGridSortEngine(TFBDataSetSortEngine, TZQuery);
RegisterRxDBGridSortEngine(TFBDataSetSortEngine, TZTable);

И сортировка заработала :)
Ответить