Страница 1 из 2
		
			
				Фильтр в 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
				Надо сделать. Вопрос здравый
			 
			
		
			
				Re: Фильтр в RxDBGrid
				
Добавлено: 
23.10.2025 13:40:00 
				 alexs
				Добавил метод
- Код: Выделить всё
 procedure TRxDBGrid.ClearFilter(AHideFilter:Boolean = true);
По умолчанию после очистки строка фильтра скрывается.
Чтобы оставать AHideFilter = true