Страница 1 из 1

Фильтр в RxDBGrid

СообщениеДобавлено: 22.10.2019 09:50:50
Xenar
Все привет.
У RxDBGrid есть зело полезная штука как фильтр по содержимому поля колонки. Есть ли возможность получить значение выбора пользователя по фильтру и в каком поле/столбце он это сделал.
Конечно у грида есть событие OnFiltred но толку от него в данном случаи не вижу.

Re: Фильтр в RxDBGrid

СообщениеДобавлено: 22.10.2019 09:57:29
alexs
Сам фильтр со всеми его полями доступен:
Код: Выделить всё
RxDBGrid1.ColumnByFieldName('').Filter. ;

Там можно всю информацию получить.

Re: Фильтр в RxDBGrid

СообщениеДобавлено: 22.10.2019 11:02:11
Xenar
alexs писал(а):Сам фильтр со всеми его полями доступен:
Код: Выделить всё
RxDBGrid1.ColumnByFieldName('').Filter. ;

Там можно всю информацию получить.


Делаю простейшее
RxDBGrid1.ColumnByFieldName('').Filter.ToString

При выборе значения в фильтре валиться с ошибкой на данную строку.
Что то делаю не так ??

Re: Фильтр в RxDBGrid

СообщениеДобавлено: 22.10.2019 12:14:05
alexs
Ну во первых - имя столбца реальное подставлено?
Во вторых - текущие значения фильтра - Filter.CurrentValues

Re: Фильтр в RxDBGrid

СообщениеДобавлено: 22.10.2019 16:12:01
Xenar
alexs писал(а):Ну во первых - имя столбца реальное подставлено?
Во вторых - текущие значения фильтра - Filter.CurrentValues


1. Да конечно
2. CurrentValues - нет такого метода

Re: Фильтр в RxDBGrid

СообщениеДобавлено: 22.10.2019 16:24:59
alexs
Это не метод.
Это свойство:
Код: Выделить всё
  TRxColumnFilter = class(TPersistent)
  private
  ...
  public
  ...
    procedure ClearFilter;

    property State:TRxFilterState read FState write FState;
    property CurrentValues : TStringList read FCurrentValues;
    property ManulEditValue : string read FManulEditValue write FManulEditValue;
    property DisplayFilterValue:string read GetDisplayFilterValue;
  published
  ...

Код: Выделить всё
procedure TForm1.Button2Click(Sender: TObject);
begin
  Label2.Caption:=RxDBGrid1.ColumnByFieldName('NAME').Filter.CurrentValues.Text;
end; 


Смотри пример в ревизии 7166.

Re: Фильтр в RxDBGrid

СообщениеДобавлено: 01.07.2020 12:46:42
Ichthyander
А для чего поле LastFilter
Код: Выделить всё
function TrxFilterByForm.Execute(AGrid: TRxDBGrid; var FilterStr: String; var LastFilter: TstringList): Boolean;
у формы фильтра rxDBGrid??

Re: Фильтр в RxDBGrid

СообщениеДобавлено: 02.07.2020 10:06:53
alexs
Ichthyander писал(а):А для чего поле LastFilter

Чтобы последний фильтр можно было отобразить

Re: Фильтр в RxDBGrid

СообщениеДобавлено: 10.01.2024 01:12:10
Ichthyander
МОжно ли как-то сделать так, чтобы в форме Filter data были также вычисляемые поля. Как при Filter in Table?

Re: Фильтр в RxDBGrid

СообщениеДобавлено: 10.01.2024 09:14:13
alexs
А как? Для каждой колонки отдельно? Или просто общий для грида?
Я когда делал фильтр там - орентировался на окно автофильтра из LO Calc.

Re: Фильтр в RxDBGrid

СообщениеДобавлено: 10.01.2024 15:47:16
Ichthyander
Вот здесь https://disk.yandex.ru/i/ivKNhj64CEj_9w не присутствуют вычисляемые поля в комбобоксе выбора.
Но, что интересно, в filter in table те же самые вычисляемые поля есть и они работают https://disk.yandex.ru/i/YVOBMokXFRFfyw

Добавлено спустя 2 минуты 32 секунды:
alexs писал(а):
Re: Фильтр в RxDBGrid

Сообщение alexs » 10.01.2024 09:14:13
А как? Для каждой колонки отдельно? Или просто общий для грида?

Имеется ввиду в форме фильтра rxDBGrid отсутствуют вычисляемые поля (то есть их нет в реальности в базе SQLite, но в ZQuery они есть как вычисляемые у меня). При этом в быстром фильтре эти колонки/поля присутствуют. Может быть их и в эту форму можно также добавить?

Re: Фильтр в RxDBGrid

СообщениеДобавлено: 11.01.2024 17:06:02
Ichthyander
Так, ну в общем, мне объяснил Алексей: это фича. Механизмы у обоих фильтров разные