AutoSort TRxDBGrid+Zeos+Postgres
Модератор: Модераторы
AutoSort TRxDBGrid+Zeos+Postgres
Уважаемые форумчане заметил что у TRxDBGrid есть хорошая функция сортировки набора данных без того чтобы делать повторный запрос к СУБД, использую Postgres из под ZeosDBO, к TRxDBGrid шел пример с использованием TMemeDataSet, попробовал сделать чтото похожее под свою сборку чет не получилось, может кто уже делал такое и подскажет как активировать эту "чудесную" функцию..
alexs писал(а):exsortzeos.pas
идёт в комплекте библиотеки.
да действительно при поднятии двух флагов и подключении этого юнита пошло, только вот с русскими буквами какая то засада цифры и латиницу сортирует как положено и по возрастанию и по убыванию, а вот русские символы почему то как то пересортицей, что можете подсказать как это победить?
кстати если нужно нашел ошибку при работе сортировки с рускими полями под Postgres , вот файлик с изменениями
unit exsortzeos;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, DB,
{$IFDEF FPC}
RxDBGrid
{$ELSE}
exDBGrid
{$ENDIF}
,ZConnection, ZDataset, ZAbstractRODataset;
type
TFBDataSetSortEngine = class(TExDBGridSortEngine)
public
procedure Sort(Field:TField; ADataSet:TDataSet; Asc:boolean);override;
end;
implementation
//uses FBCustomDataSet;
procedure TFBDataSetSortEngine.Sort(Field:TField; ADataSet:TDataSet; Asc:boolean);
begin
if Assigned(ADataSet) then begin
(ADataSet as TZQuery).SortedFields:='"'+Field.FieldName+'"';
if Asc then (ADataSet as TZQuery).SortType:=stAscending
else (ADataSet as TZQuery).SortType:=stDescending;
end
end;
initialization
RegisterExDBGridSortEngine(TFBDataSetSortEngine, TZQuery);
end.
alexs писал(а):включил в сегодняшний комит
я смотрю там грамм добавилось, аж пришлось сборку с SVN обновить , в RxDBGrid появились маленькие фенечки для поиска и фильтрации раньше их ручками надо было, сейчас менюшка есть в углу,
а почему RxLoginDialog потерял свою рускоязычную начинку, теперь все сопроводительные капции на Энглише ( ?
alexs писал(а):Теперь всё по взрослому - через локализацию. Давлены файлы со строковыми ресрусами.
стоп тады почему он мне русский профиль не втыкает все на энглише , какие переменные отвечают за выбор языка?
Всетаки Alexs подскажите плиз как пользоватся локализацией, и почему в компоненте TRxDBGrid при вызове меню из нулевой ячейки которая в верхнем левом углу у меня сортировка колонок неактивна(то бишь пункт меню серый)
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
1. Локализация - сейчас всё идёт к локализации через po-файлы. Без них все внутрении сообщения и диалоги rx-а будут на англицком. Точно также как и сама lcl. Так что просто надо добапвить к готовому исполняемому файлу соответсвующий po файл из библиотеки и будет нужный вам язык.
Пример использования этого дела я подсморел в DC, именно так работает FBManager.
Смотрите код.
2. Сортировка - во первых должен быть подключен соответсвующий провайдер - rxsortXXXX из библиотеки. А для сортировки по нескольким колонкам (там сейчас спец. диалог есть) - включить опцию разрешения этого диалога, и провайдер должен уметь сортировать оп нескольким колонкам. для FBDataSet и RXMemTable - это уже есть. Для Zeos - автор того патчика забыл прислать соответсвующий модуль.
Пример использования этого дела я подсморел в DC, именно так работает FBManager.
Смотрите код.
2. Сортировка - во первых должен быть подключен соответсвующий провайдер - rxsortXXXX из библиотеки. А для сортировки по нескольким колонкам (там сейчас спец. диалог есть) - включить опцию разрешения этого диалога, и провайдер должен уметь сортировать оп нескольким колонкам. для FBDataSet и RXMemTable - это уже есть. Для Zeos - автор того патчика забыл прислать соответсвующий модуль.
alexs писал(а):Так что просто надо добапвить к готовому исполняемому файлу соответсвующий po файл из библиотеки и будет нужный вам язык.
Уважаемый Alexs не получается у меня самому дойти вот до этого, а можете маленький примерчик кинуть как это все добавить в свой проект))
уважаемый alexs прошло обновление с SVN вижу что RXDBGrid обновился, в результате после компиляции пропало отображении по умолчанию спец. диалог подскажите какое свойство в компоненте отвечает за его включении выключение ?
Некорректная сортировка в примере AutoSort.
Если при добавлении записи в RxMemoryData добавляем русский текст, например:
RxMemoryData1.AppendRecord([1, 'Владимир', EncodeDate(1995, 8, 1)]);
RxMemoryData1.AppendRecord([2, 'Ярослав', EncodeDate(1983, 8, 1)]);
RxMemoryData1.AppendRecord([3, 'Алексей', EncodeDate(1993, 1, 1)]);
RxMemoryData1.AppendRecord([4, 'Иван', Now]);
При сортировке по второму полю данные распределяются не по алфавиту.
Если при добавлении записи в RxMemoryData добавляем русский текст, например:
RxMemoryData1.AppendRecord([1, 'Владимир', EncodeDate(1995, 8, 1)]);
RxMemoryData1.AppendRecord([2, 'Ярослав', EncodeDate(1983, 8, 1)]);
RxMemoryData1.AppendRecord([3, 'Алексей', EncodeDate(1993, 1, 1)]);
RxMemoryData1.AppendRecord([4, 'Иван', Now]);
При сортировке по второму полю данные распределяются не по алфавиту.
