Страница 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
Так, ну в общем, мне объяснил Алексей: это фича. Механизмы у обоих фильтров разные
Re: Фильтр в RxDBGrid

Добавлено:
01.09.2025 01:20:50
Sharfik
А есть механизм сброса быстрых фильтров? Или только через "колхозить"?
- Код: Выделить всё
procedure TFModuleContracts.actGridClearFilterExecute(Sender: TObject);
var
i:integer;
begin
for i:=0 to RxDBGrid1.Columns.Count-1 do
begin
RxDBGrid1.Columns.Items[i].Filter.ClearFilter;
RxDBGrid1.Columns.Items[i].Filter.State:=rxfsAll;
end;
RxDBGrid1.OptionsRx:=RxDBGrid1.OptionsRx-[rdgFilter];
RxDBGrid1.OptionsRx:=RxDBGrid1.OptionsRx+[rdgFilter];
end;
Re: Фильтр в RxDBGrid

Добавлено:
08.09.2025 15:02:34
alexs
Надо сделать. Вопрос здравый