![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
фильтр в TTable по месяцам [D6, Paradox]
VicV © (2002-05-13 17:59:00)Помогите пожалуйста! Вот какой вопрос. В таблице есть поле с типом Дата. Необходимо выбрать записи за определенный месяц. (для каждого месяца в году. Каким образом можно этосделать?
VAleksey (2002-05-15 15:09:00) [1]Пиши в OnFilterRecord
var
Year1,month1,day1:word;
begin
DecodeDate(DataSet[DateField],Year1,month1,day1);
Accept:=month1 = NeedingMonthVar;
end
и наращиваещь это условие для выборки по нужным месяцам, годам и тп.
Anatoly Podgoretsky (2002-05-15 12:55:00) [2]Reindeer Moss Eater (15.05.02 08:46)
И май и июни
Deniz (2002-05-15 09:34:00) [3]Вообще в вопросе не совсем понятно, один месяц из 1 годаили всех лет.
Лучше дождаться поправки Автора или закончить ветку.
Reindeer Moss Eater (2002-05-15 08:46:00) [4]А надо было ВСЕ апрели.
Deniz (2002-05-15 08:40:00) [5]В TTable есть SetRange
или как написал Exp
Table1.Filter:=
"(DateField >= "01.04.2002") and (DateField < "01.05.2002")";
Выбирает весь АПРЕЛЬ.
Удачи.
Anatoly Podgoretsky (2002-05-14 18:32:00) [6]Exp (14.05.02 18:11)
Это не соответствует его условию, в Filter не возможно задать, только OnFilterRecord
Exp (2002-05-14 18:11:00) [7]If (ComboBox1.Text<>"") AND (ComboBox2.Text<>"") Then
begin
DateComboBox1:="01."+IntToStr(ComboBox1.ItemIndex+1)+"."+ComboBox2.Text;
DateComboBox2:=IntToStr(Datdm(ComboBox1.ItemIndex+1,StrToInt(ComboBox2.Text)))+"."+IntToStr(ComboBox1.ItemIndex+1)+"."+ComboBox2.Text;
DataMod.TableData.Filter:="(Date >= "+""""+DateComboBox1+""""+") AND (Date <= "+""""+DateComboBox2+""""+")";
Exp (2002-05-14 18:11:00) [8]If (ComboBox1.Text<>"") AND (ComboBox2.Text<>"") Then
begin
DateComboBox1:="01."+IntToStr(ComboBox1.ItemIndex+1)+"."+ComboBox2.Text;
DateComboBox2:=IntToStr(Datdm(ComboBox1.ItemIndex+1,StrToInt(ComboBox2.Text)))+"."+IntToStr(ComboBox1.ItemIndex+1)+"."+ComboBox2.Text;
DataMod.TableData.Filter:="(Date >= "+""""+DateComboBox1+""""+") AND (Date <= "+""""+DateComboBox2+""""+")";
Reindeer Moss Eater (2002-05-14 09:37:00) [9]К сожалению в свойстве Filter нельзя использовать LocalSQL выражения, поэтому действительно, для TTable покатит только OnFilterRecord
Johnmen (2002-05-14 09:13:00) [10]А если фильтр, то обрабатывать OnFilterRecord.
Reindeer Moss Eater (2002-05-14 08:21:00) [11]>Vicv
Все записи всех январей:
Select * from MyTable
Where EXTRACT(MONTH from Дата) = 1
Desdechado (2002-05-13 20:20:00) [12]2 VicV
это к TQuery, SQL-запрос с указанным ограничением
VicV (2002-05-13 19:39:00) [13]Reindeer Moss Eater, прости тупого, не совсем (то есть совсем не понятно, что с этим делать)?
Reindeer Moss Eater (2002-05-13 18:37:00) [14]...Where EXTRACT(MONTH from Дата) = Тра-ля-ля