Ничто не сделает наше приложение универсальней, чем возможность его взаимодействия с другими программами. Например имеем некую базу данных ADO Access. Отлично! Можем вносить и редактировать данные, можем их даже распечатать, но если нам нужно отправить эти данные по электронной почте, в скажем качестве отчета, мы вынуждены сканировать распечатанное и затем только отправлять сканы адресату. Данное действо конечно же возможно, но как минимум, не совсем удобно. Слишком много лишних ходов. Другое дело, нажал на кнопку и все данные переместились в Вордовский или Экселевский файлы. Здорово! Но как это сделать? Нет ничего проще!!! В этой статье мы об этом и поговорим. В качестве примера рассмотрим реализацию экспорта данных в MS Excel, из БД ADO Access. Для этого создадим БД ну например - Телефонный справочник. За одно вспомним как создается база данных и как она подключается к Delphi. Кто уже знает как это делается, может сразу перейти ко второй части. Итак, для начала перейдем в папку с нашим проектом, кликаем там правой клавишей, выбираем Создать - Microsoft Access База данных и открываем ее. И заполняем поля как на рисунке.
Тип данных поля
ID выбираем счетчик, и назначаем его ключевым. Все остальные поля у нас будут текстовыми. Далее сохраняемся, и в появившемся поле пишем имя нашей таблицы, по которому в дальнейшем будем к ней
обращаться. Например, я назову свою Справочник.
Затем закрываем Access и
переходим в Delphi.
Помещаем на форму компоненты: - DBGrid1 (В моем случае это DBGridEh1);
- ADOConnection1, DataSuorce1 и ADOTable1;
Далее выделяем компонент ADOConnection1, свойство LoginPrompt устанавливаем в
false, кликаем в свойстве ConnectionString и в появившемся окне выбираем Build.
Выбираем драйвер как на скриншоте, (если вы используете более
ранние версии Delphi и Office, то в место
указанного в скриншоте драйвера, выбирайте Microsoft Jet 4 OLE DB Provider).
Жмем
далее и в поле – «Источник данных» прописываем полный путь к файлу нашей базы данных . Поскольку, я сохранил
его в папке с проектом, то в моем случае это
C:\Users\Администратор\Documents\RAD
Studio\Projects\Телефонный справочник\Microsoft Access База данных.accdb
Жмем Ok и переходим к компоненту DataSource1 в
свойстве DataSet которого
выбираем ADOTable1. В свойстве DataSource компонента DBGridEh1, выбираем DataSource1.
Теперь выделяем
компонент ADOTable1 и начинаем заполнять его
основные свойства, так в свойстве TableName выбираем Справочник.
В свойстве Connection выбираем
ADOConnection1 и свойство Active устанавливаем
в true, после чего наш DBGrid подключит таблицу нашей базы данных.
Осталось привести нашу таблицу в Божеский вид, а именно
выровнять столбцы, чтобы все корректно отображалось в DBGridEh1.
Для этого создадим
обработчик событий FormCreate на
форме, где для выравнивания ширины столбцов запишем следующий код:
begin
DBGridEh1.Columns.Items[0].Visible:=false;
//Столбец ID отображать не будем.
DBGridEh1.Columns.Items[1].Width:=100;
DBGridEh1.Columns.Items[2].Width:=100;
DBGridEh1.Columns.Items[3].Width:=100;
DBGridEh1.Columns.Items[4].Width:=100;
DBGridEh1.Columns.Items[5].Width:=200;
Button2.Visible:=False; //Кнопки 2,3,4 отображать тоже не будем.
Button3.Visible:=False;
Button4.Visible:=False;
end;
Теперь свойство Width компонента DBGridEh1 выставляем в 638
(ширина грида). А его свойство ReadOnly, выставляем в True - чем
запретим редактирование данных пользователем в таблице на прямую.
Сохраняем все, запускаем проект…., и если все делалось внимательно, то наш
грид должен принять вполне приличный видон.
Дело осталось за малым, расписываем события для кнопок.
Создаем обработчик событий на Button1, где
записываем
begin
DbGridEh1.ReadOnly:=False;
AdoTable1.Edit;
Button1.Enabled:=false;
Button2.Visible:=true;
Button3.Visible:=true;
Button4.Visible:=true;
Button5.Visible:=false;
end;
В свойстве Caption кнопки
Button1
пишем - "Редактировать"
Создаем обработчик событий на Button2, где записываем
begin
ADOTable1.Insert;
end;
В свойстве Caption кнопки
Button2 пишем - "Добавить"
Создаем обработчик событий на Button3, где записываем
begin
ADOTable1.Delete;
end;
В свойстве Caption кнопки
Button3 пишем - "Удалить"
Создаем обработчик событий на Button4, где записываем
begin
AdoTable1.Edit;
ADOTable1.Post;
DBGridEh1.ReadOnly:=True;
Button1.Enabled:=True;
Button2.Visible:=False;
Button3.Visible:=False;
Button4.Visible:=False;
Button5.Visible:=True;
end;
В свойстве Caption кнопки
Button4 пишем - "Сохранить", в свойстве Caption кнопки
Button5 пишем - "Экспорт в Эксель".
Ну вот собственно и все. В этой части мы вспомнили как создается и подключается база данных. Заготовка для работы у нас теперь есть, и в следующей части, мы научимся экспортировать данные из нашего справочника в MS Excel.
|