510______________________________________________Глава 9

дайте Itemlndex = 0 и Columns = 2. Осталось написать операторы, обеспечиваю-
щие фильтрацию. Ниже приведен соответствующий текст.

unsigned short Year, Month, Day;

//———————————————————————-

void_fastcall TForml::TablelCalcFields(TDataSet *DataSet)
(

Date().DecodeDate(&Year,&Month,&Day) ;

TablelAge->Value = Year - TablelYear_b->Value;

t
//———————————————————————-

void   fastcall TForml::RGFClick(TObject *Sender)
{
Tablel->IndexName = "depfio";

if (RGF->ItemIndex == 0)

Tablel->Filtered = false;

else
(
if (RGF->ItemIndex ==2)

Tablel->Filter = "Dep='"+CBDep->Text+"'";

else if (RGF->ItemIndex == 3)
(

Tablel->Filter = "(Year_b<="+IntToStr((int)(Year-SEmin->Value))+
")and(Year_b>="+IntToStr((int)(Year-SEmax->Value))+")";

Tablel->IndexName = "Year";

)
else

Tablel->Filter = "(Dep='"+CBDep->Text+

"')and(Year_b<="+IntTo3tr((int)(Year-SEmin->Value))
+")and(Year_b>="+IntToStr((int)(Year-SEmax->Value))+")"
Tablel->Filtered = true;

)

I

II———————————————————————-

II-

void _fastcall TForrnI::FormCreate(TObject *Sender)
{

CBDep->ItemIndex = 0;

Date().DecodeDate(&Year,&Month,&Day) ;

Tablel->Active = true;

t
//———————————————————————-

II-

void _fastcall TForml::FormDestroy(TObject *Sender)
{
Tablel->Active = false;

t

Текст включает три процедуры. Одна из них — TablelCalcFields уже была
рассмотрена ранее. Ее отличие от рассмотренной заключается только в том, что пг
ременные Year, Month и Day сделаны глобальными (их объявление вынесено ;'
процедуры) и обращение к функциям Date и DecodeDate перенесено в процедур
FormCreate — обработчик события формы OnCreate. Сделано это для того, чтоб7
можно было воспользоваться значением текущего года Year в двух процедурах
TablelCalcFields и RGFClick. В процедуру FormCreate внесен также оператор

Tablel->Active = true;

открывающий связь с базой данных (разрывается эта связь при завершении EI,
полнения приложения в обработчике события формы OnDestroy) и оператор