Внешний вид сайта:

Использование календаря в базе данных

При заполнении полей данных с датой удобно иметь календарную форму. К сожалению TDBCalendarLookupBox не существует, так что мы должны объединить компонент TDateTimePicker с TDataSource.

Необходимо:

  • Конечно, сама база данных с полем даты
  • Форма
  • Компонент TDateTimePicker
  • Компонент TQuery или TTable
  • Компонент TDataSource
  • TDBNavigator (необязательно)

В нашем случае имеется поле с датой ShiftDate.

События, которые будут запрограммированы: OnDateChange, OnUpdateData (DataSource), OnClick (DateTimePicker).

Синхронизируем DateTimePicker с базой данных:

procedure  TForm1.DataSource1DataChange(
    Sender: TObject; Field: TField);
begin
  inherited;
      DateTimePicker1.Date := Query1SHIFTDATE.Value;
end;

Синхронизируем базу данных с DateTimePicker:

procedure TForm1.DataSource1UpdateData(Sender: TObject);
begin
  inherited;
  Query1SHIFTDATE.Value := DateTimePicker1.Date;
end;

Когда дата введена, будем экспортировать ее в базу данных:

procedure TForm1.DateTimePicker1Click(Sender: TObject);
begin
  inherited;
  // отключаем обработчик
  DataSource1.OnDataChange := nil;
  // устанавливаем query в режим редактирования
  Query1.Edit;
  // меняем обработчик
  DataSource1.OnDataChange := DataSource1DataChange;
end;

Комментарии

Нет комментариев. Ваш будет первым!