Topic: Фильтр в Grid по вхождению даты в выбранный месяц

Добрый день. Бьюсь, но ничего не выходит. Посоветуйте что делаю неправильно. Фильтр в Grid по вхождению даты в выбранный месяц.

var
   mD, yD: integer;
   p1, p2: string;
begin
     // Выбранный период
     FormFinans.Button4.Enabled := True; // Активирем копку закрытия периода
     // Фильтр таблиц по выбранному периоду

     mD := SQLExecute('SELECT pManthInt FROM Period WHERE (id = ''' + IntToStr(FormFinans.TableGrid1.dbItemID) + ''');');
     yD := SQLExecute('SELECT pYear FROM Period WHERE (id = ''' + IntToStr(FormFinans.TableGrid1.dbItemID) + ''');');
     if mD<10 then p1:= '01.0'+IntToStr(mD)+'.'+IntToStr(yD) else p1:= '01.'+IntToStr(mD)+'.'+IntToStr(yD);

     if mD=12 then begin mD:=1; yD:=yD+1;  end else mD:=mD+1;
     if mD<10 then p2:= '01.0'+IntToStr(mD)+'.'+IntToStr(yD) else p2:= '01.'+IntToStr(mD)+'.'+IntToStr(yD);

     periodFiltr:= '(oSchetData>'''+p1+''') AND (oSchetData<'''+p2+''')';
     ShowMessage (periodFiltr);

     FormFinans.TableGrid2.dbFilter:=periodFiltr;
     FormFinans.TableGrid3.dbFilter:=periodFiltr;

     FormFinans.TableGrid2.dbUpdate;
     FormFinans.TableGrid3.dbUpdate;

Re: Фильтр в Grid по вхождению даты в выбранный месяц

В строке
periodFiltr:='(date(oSchetData)>=date('+p1+')) AND (date(oSchetData)<date('+p2+'))';
Ругается на синтаксическую ошибку возле ".2016".
Значение р1 = '01.10.2016'

Если поставить еще дополнительные кавычки:
periodFiltr:='(date(oSchetData)>=date(""'+p1+'"")) AND (date(oSchetData)<date(""'+p2+'""))';
не ругается, но и фильтровать не хочет.

Re: Фильтр в Grid по вхождению даты в выбранный месяц

Приветствую.


Вам необходимо найти записи, дата которых входит в выбранный месяц года?


Тогда просто воспользуйтесь кнопкной с действием "Поиск" и компонентов DateTimePicker со свойством Kind=MonthYear

Dmitry.

Re: Фильтр в Grid по вхождению даты в выбранный месяц

В моем примере дополнительной кнопки быть не должно. Фильтрация должна происходить при выборе месяца в списке.

Re: Фильтр в Grid по вхождению даты в выбранный месяц

Пожалуйста приложите ваш проект, т.к. не знаю как именно вы реализовали выбор месяца из списка.

Dmitry.