AutoSort TRxDBGrid+Zeos+Postgres
Модератор: Модераторы
Доброго времени суток.
Пакет 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.
Пакет 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 писал(а):Замени в тексте 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 писал(а):поправь - сделай патчик, я его включу в исходники.
Как делать патчик я пока не знаю
Подправил в следующих местах:
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);
И сортировка заработала
