1 (edited by mikhail_a 2020-03-19 14:34:47)

Topic: Как передать значение из Edit в настройки фильтра

В окне "Настройка компонента таблицы" есть раздел "3.Фильтр (необязательно)".
В этом разделе можно в явном виде указать критерии отбора значений.
Например, Table1.Quantity >= 1.
А можно ли как то указать в этом фильтре не конкретное значение, а что это значение надо брать из поля Edit1?
Конструкция Table1.Quantity >= {Edit1} не работает

Re: Как передать значение из Edit в настройки фильтра

Нужна либо галка CheckBox1 либо кнопка Button1 c процедурой OnClick

Form1.Table1.dbFilter:='Quantity>='+Form1.Edit1.Text;
Form1.Table1.dbUpdate;

Тогда фильтрация будет гибкой в зависимости от значения Edit.

Yana

3 (edited by mikhail_a 2020-03-23 15:55:37)

Re: Как передать значение из Edit в настройки фильтра

На поле Edit повесил процедуру OnChange :
Form1.Table1.dbFilter := 'Quantity >= ' + VarToStr(Form1.Edit1.Value);
Form1.Table1.dbUpdate;
Работает как надо - в таблице скрываются значения, меньшие введенной цифры.
Но, у меня еще есть  стандартно настроенная кнопка "отчет"
В настройках кнопки добавил поле Edit1 в раздел компонентов, участвующих в поиске.
Но, отчет выводит строки без учета фильтра по количеству (т.е. без учета значений в Edit1).
Что-то не пойму, как добавить в отчет фильтр по Edit1?

Re: Как передать значение из Edit в настройки фильтра

Вопрос решен:
В дизайнере отчетов повесил на событие бенда отключение его видимости, если кол-во товара меньше указанного.
Т.е., например, если кол-во товара меньше 1, то строки с нулевым кол-вом в отчете не выводятся.
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
   if <Report."Table1.Quantity"> < <Edit_1> then MasterData1.Visible := False ELSE MasterData1.Visible := True; 
end;