Программирование - это просто
Advertisement
Главная arrow Уроки Delphi arrow Delphi - это просто! arrow Урок 8.9. Delphi. Программирование баз данных в Delphi: Добавление нового склада(TDBLookupComboBox)
25.04.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Урок 8.9. Delphi. Программирование баз данных в Delphi: Добавление нового склада(TDBLookupComboBox) Печать E-mail
Автор megabax   
17.12.2009 г.
Базы данных

Программирование баз данных в Delphi:  Добавление нового склада (TDBLookupComboBox, TEdit, TButton, TTable, TDataSource).

Вот и пришло время научить нашу складскую программу добавлять новые новые записи в справочник складов.  Для начала нам потребуется создать диалоговое окно , в котором мы будем указывать информацию о новом складе . Для этого создаем новую форму*:

Программирование баз данных в Delphi:  Добавление нового склада (TDBLookupComboBox, TEdit, TButton, TTable, TDataSource).

Форма готова, теперь нам необходимо кинуть на нее компоненты , которые понадобятся нам для дальшейшей работы (TDBLookupComboBox, TEdit, TButton, 2-а TTable и TDataSource)*:

Программирование баз данных в Delphi:  Добавление нового склада (TDBLookupComboBox, TEdit, TButton, TTable, TDataSource). Программирование баз данных в Delphi:  Добавление нового склада (TDBLookupComboBox, TEdit, TButton, TTable, TDataSource).

Дадим имена нашим компонентам (Свойство "Name"): "cbFIO" (TDBLookupComboBox) , "eSkladName" (TEdit),  "btnAdd" (TButton), "tblFIO" и "tblSklad" (TTable) , dsFIO (TDataSource) , а также дадим имя нашей форме - "frmAddSklad" и сохраним наш модуль как "AddSklad" . Свойству кнопки "btnAdd" -> "Caption" укажем значение "Добавить" , а свойству "Caption" нашей формы укажем значение "Добавить новый склад" . Как-то не очень красиво получается писать, давайте попробуем упростить описание свойств компонентов , создадим для этих целей таблицу, в которой будем указывать имя компонента с его свойствами и значениями , присвоенными им:

Имя компонента Свойство Значение Описание действий
tblFIO (TTable)
DatabaseName StorePrj Указываем алиас (псевдоним) БД.
TableName employees.DB Указываем имя таблицы
dsFIO(TDataSource)
DataSet tblFIO Указываем таблицу с фамилиями
tblSklad(TTable)
DatabaseName StorePrj ...
TableName stores.DB ...
TDBLookupComboBox
ListSource dsFIO Указываем источник таблицы
ListField Fio Указываем поле для вывода
KeyField Id Указываем ключевое поле

Получился следующий результат*:

Программирование баз данных в Delphi:  Добавление нового склада (TDBLookupComboBox, TEdit, TButton, TTable, TDataSource).

Поехали дальше. Теперь надо написать обработчик нажатия кнопки "Добавить" (onClick) , он будет выглядеть следующим образом:

procedure TfrmAddSklad.btnAddClick(Sender: TObject);
begin  
  if (Length(eSkladName.Text) > 0)  // Проверяем, ввели ли название склада.
    and (cbFIO.KeyValue > 0)  // Проверяем наличие выбора фамилии.
  then
  begin
    tblSklad.Active := True;
    tblSklad.Insert;  // добавляем запись.
    tblSklad.FieldValues['Name'] := eSkladName.Text;  // Указываем название склада.
    tblSklad.FieldValues['Storeman'] := cbFIO.KeyValue;  // Указываем идентификатор на фамилию.
    tblSklad.Post;
    ModalResult := mrOk;  // Говорим что все пучком, возвращая mrOk.
  end
  else
    ModalResult := mrNone;  // Иначе возвращаем значение mrNone.
end;

Так-же пишем обработчики событий нашего окна - onShow:

procedure TfrmAddSklad.FormShow(Sender: TObject);
begin
  eSkladName.Text := ''; // Чистим содержимое TEdit.
  tblFio.Active := True; // Подключаемся к таблице.
end;

и - onClose:

procedure TfrmAddSklad.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  tblFio.Active := False; // Разрываем связь с таблицей.
end;

Вот и диалоговое окно добавления нового склада готово. Теперь нам необходимо его связать с окном "Склады". Для этого добавляем кнопку на форму окна "Склады", назовем ее "btnAdd", а в заголовке кнопки (Caption), напишем "Добавить". В дальнейшем пишем обработчик события нажатия кнопки (onClick):

procedure TfrmStores.btnAddClick(Sender: TObject);
begin
  // Проверяем, была ли добавлена запись.
  if frmAddSklad.ShowModal = mrOk then  // Выводим окно и читаем результат, полученный от окна.
  begin
    // по новой выполняем запрос.
    Query.Active := False;
    Query.Open;
  end;
end;

Если присмотреться, то можно заметить, что для вывода на экран диалогового окна используется ф-я ShowModal, что значительно упрощает нам работу, так-как происходит блокировка всех окон нашего приложения, а по закрытии диалогового окна мы можем обработать результат. =)

Запускаем программу, смотрим что же у нас получилось, вызываем наше диалоговое окно, заполняем нужными нам данными и нажимаем добавить:

Программирование баз данных в Delphi:  Добавление нового склада (TDBLookupComboBox, TEdit, TButton, TTable, TDataSource).

Смотрим результат, как видим, запись была успешно добавлена:

Программирование баз данных в Delphi:  Добавление нового склада (TDBLookupComboBox, TEdit, TButton, TTable, TDataSource).

 


Скриншоты, помеченные знаком * , являются цитатами и иллюстрациями   программного продукта "Turbo Delphi", авторское право на который принадлежит "Borland Software Corporation".


Последнее обновление ( 06.11.2011 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги