AutoSort TRxDBGrid+Zeos+Postgres

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

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

AutoSort TRxDBGrid+Zeos+Postgres

Сообщение grigoreo » 03.08.2009 09:17:38

Уважаемые форумчане заметил что у TRxDBGrid есть хорошая функция сортировки набора данных без того чтобы делать повторный запрос к СУБД, использую Postgres из под ZeosDBO, к TRxDBGrid шел пример с использованием TMemeDataSet, попробовал сделать чтото похожее под свою сборку чет не получилось, может кто уже делал такое и подскажет как активировать эту "чудесную" функцию..
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: AutoSort TRxDBGrid+Zeos+Postgres

Сообщение alexs » 03.08.2009 19:45:06

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

Re: AutoSort TRxDBGrid+Zeos+Postgres

Сообщение grigoreo » 04.08.2009 08:33:39

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.
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: AutoSort TRxDBGrid+Zeos+Postgres

Сообщение alexs » 05.08.2009 19:03:58

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

Re: AutoSort TRxDBGrid+Zeos+Postgres

Сообщение alexs » 06.08.2009 20:59:29

включил в сегодняшний комит
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: AutoSort TRxDBGrid+Zeos+Postgres

Сообщение grigoreo » 07.08.2009 11:14:26

alexs писал(а):включил в сегодняшний комит


я смотрю там грамм добавилось, аж пришлось сборку с SVN обновить , в RxDBGrid появились маленькие фенечки для поиска и фильтрации раньше их ручками надо было, сейчас менюшка есть в углу,

а почему RxLoginDialog потерял свою рускоязычную начинку, теперь все сопроводительные капции на Энглише ( ?
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: AutoSort TRxDBGrid+Zeos+Postgres

Сообщение alexs » 07.08.2009 22:12:18

Теперь всё по взрослому - через локализацию. Давлены файлы со строковыми ресрусами.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: AutoSort TRxDBGrid+Zeos+Postgres

Сообщение grigoreo » 08.08.2009 11:40:12

alexs писал(а):Теперь всё по взрослому - через локализацию. Давлены файлы со строковыми ресрусами.


стоп тады почему он мне русский профиль не втыкает все на энглише , какие переменные отвечают за выбор языка?
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: AutoSort TRxDBGrid+Zeos+Postgres

Сообщение grigoreo » 11.08.2009 09:41:02

Всетаки Alexs подскажите плиз как пользоватся локализацией, и почему в компоненте TRxDBGrid при вызове меню из нулевой ячейки которая в верхнем левом углу у меня сортировка колонок неактивна(то бишь пункт меню серый)
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: AutoSort TRxDBGrid+Zeos+Postgres

Сообщение alexs » 11.08.2009 14:34:10

1. Локализация - сейчас всё идёт к локализации через po-файлы. Без них все внутрении сообщения и диалоги rx-а будут на англицком. Точно также как и сама lcl. Так что просто надо добапвить к готовому исполняемому файлу соответсвующий po файл из библиотеки и будет нужный вам язык.
Пример использования этого дела я подсморел в DC, именно так работает FBManager.
Смотрите код.

2. Сортировка - во первых должен быть подключен соответсвующий провайдер - rxsortXXXX из библиотеки. А для сортировки по нескольким колонкам (там сейчас спец. диалог есть) - включить опцию разрешения этого диалога, и провайдер должен уметь сортировать оп нескольким колонкам. для FBDataSet и RXMemTable - это уже есть. Для Zeos - автор того патчика забыл прислать соответсвующий модуль. :-(
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: AutoSort TRxDBGrid+Zeos+Postgres

Сообщение grigoreo » 13.08.2009 15:09:01

alexs писал(а):Так что просто надо добапвить к готовому исполняемому файлу соответсвующий po файл из библиотеки и будет нужный вам язык.


Уважаемый Alexs не получается у меня самому дойти вот до этого, а можете маленький примерчик кинуть как это все добавить в свой проект))
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: AutoSort TRxDBGrid+Zeos+Postgres

Сообщение alexs » 13.08.2009 17:30:26

посмотри для пример ulng.pas из состава DoubleComander-а
Там проще некуда - всё разжовано
сам переводчик находится в модуле - utranslator.pas.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: AutoSort TRxDBGrid+Zeos+Postgres

Сообщение grigoreo » 19.08.2009 10:21:07

уважаемый alexs прошло обновление с SVN вижу что RXDBGrid обновился, в результате после компиляции пропало отображении по умолчанию спец. диалог подскажите какое свойство в компоненте отвечает за его включении выключение ?
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: AutoSort TRxDBGrid+Zeos+Postgres

Сообщение alexs » 19.08.2009 19:05:20

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

Re: AutoSort TRxDBGrid+Zeos+Postgres

Сообщение alexkam » 16.09.2009 16:35:38

Некорректная сортировка в примере 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]);

При сортировке по второму полю данные распределяются не по алфавиту.
alexkam
постоялец
 
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25

Рейтинг@Mail.ru