Перегляд компонентів та редагування полів 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Перегляд компонентів та редагування полів



БАЗИ ДАНИХ

Просмотр базы данных

Пользователь может просматривать базу данных в режиме формы или в режиме таблицы. В режиме формы можно видеть только одну запись, а в режиме таблицы -- несколько записей одновременно. Довольно часто эти два режима комбинируют. Краткая информация (содержимое некоторых ключевых полей) выводится в табличной форме, а при необходимости видеть содержимое всех полей записи выполняется переключение в режим формы.

Компоненты, обеспечивающие просмотр и редактирование содержимого полей базы данных, находятся на вкладке Data Controls (рис. 8).

Рис. 8. Компоненты просмотра и редактирования полей базы данных

Режим формы

Для того чтобы обеспечить просмотр базы данных в режиме формы, в форму приложения нужно добавить компоненты, обеспечивающие просмотр и, если нужно, редактирование содержимого полей записи, причем по одному компоненту для каждого поля.

Компонент DBText позволяет только просматривать содержимое поля, а компоненты DBEdit и DBMеmо — просматривать и редактировать. В табл. 17.9 перечислены некоторые свойства этих компонентов. Свойства перечислены в том порядке, в котором следует устанавливать их значения после добавления в форму приложения.

Таблица 9. Свойства компонентов DBText, DBEdit и DBMеmо

       
  Свойство Определяет  
  Name DataSource   DataField Имя компонента. Используется для доступа к свойствам компонента Компонент-источник данных Поле базы данных, для отображения или редактирования которого используется компонент  
       

В качестве примера использования компонентов DBEdit и овмето рассмотрим программу, которая обеспечивает работу с базой данных "Архитектурные памятники Санкт-Петербурга". Вид формы приложения приведен на рис. 9.

Рис. 9. Форма приложения Архитектурные памятники Санкт-Петербурга

Создается форма следующим образом. Сначала в пустую форму надо добавить компоненты Tаblе и Datasource и установить значения их свойств (табл. 10). Значения свойств следует устанавливать в том порядке, в котором они следуют в таблице.

Таблица 10. Значения свойств компонентов Tablel И DataSourcel

         
  Свойство Значение Комментарий  
  Tablel. DatabaseName Peterburg Псевдоним базы данных (создается утилитой BDE Administrator)  
  Tablel. TableName monuments. db Таблица базы данных (создается утилитой Database Desktop)  
  Tablel. Active True    
  DataSource1. Dataset Tablel    
         

После настройки компонентов Table и Datasource в форму нужно добавить три компонента DBEdit и компонент овмето. Компоненты DBEdit предназначены для просмотра и редактирования полей Name, Architect и Photo,

компонент овмето — для просмотра и редактирования поля Note. Значения свойств компонентов просмотра-редактирования полей базы данных приведены в табл. 11.

Таблица 11. Значения свойств компонентов DBEdit1 -DBEdit3 и DBMemo1

             
 

Свойство

Компонент

 
  DBEdit1 DBEdit2 DBEdit3 DBMemo1  
  DataSource DataSource1 DataSource1 DataSource1 DataSource1  
  DataFieid Monument Architect Photo Note  
             

Так как значению свойства Active компонента Tаblе1 присвоено значение True, то сразу после того, как будет присвоено значение свойству DataFieid, в поле компонента DBEdit появится содержимое соответствующего поля первой записи таблицы базы данных. Если таблица не содержит данных, поле остается незаполненным. Если значение свойства Active компонента Tabiei равно False, то в поле компонента DBEdit появляется его имя, значение свойства Name.

Кроме компонентов просмотра-редактирования полей базы данных, в форму нужно добавить компонент image, который используется для просмотра иллюстраций, и четыре компонента Label для вывода пояснительного текста. свойству Visible компонентов Image1, Label4 и DBEdit3 следует присвоить значение False.

Теперь, если откомпилировать и запустить программу, на экране появится форма, в полях которой будет находиться содержимое первой записи файла данных.

Для того чтобы иметь возможность просматривать другие записи файла данных, в форму приложения нужно добавить компонент DBNavigator, значок которого находится на вкладке Data Controls (рис. 10). Компонент DBNavigator (рис. 11) представляет собой набор кнопок, при щелчках на которых во время работы программы происходит перемещение указателя текущей записи к следующей, предыдущей, первой или последней записи базы данных, а также добавление к файлу данных новой записи, удаление текущей записи.

Рис. 10. Значок компонента DBNavigator находится на вкладке Data Controls

Рис. 11. Компонент DBNavigator

Табл. 12. содержит описания действий, которые выполняются в результате щелчка на соответствующей кнопке компонента DBNavigator.

Свойства компонента DBNavigator перечислены в табл. 13.

Таблица 12. Кнопки компонента DBNavigator

           
    Кнопка Обозначение Действие  
  К первой nbFirst Указатель текущей записи перемещается к первой записи файла данных  
  К предыдущей nbPrior Указатель текущей записи перемещается к предыдущей записи файла данных  
  К следующей nbNext Указатель текущей записи перемещается к следующей записи файла данных  
  К последней nbLast Указатель текущей записи перемещается к последней записи файла данных  
  Добавить nblnsert В файл данных добавляется новая запись  
  Удалить nbDelete Удаляется текущая запись файла данных  
  Редактирование nbEdit Устанавливает режим редактирования текущей записи  
  Сохранить nbPost Изменения, внесенные в текущую запись, записываются в файл данных  
  Отменить Cancel Отменяет внесенные в текущую запись изменения  
  Обновить nbRefresh Записывает внесенные изменения в файл  
           

 

Таблица 13. Свойства компонента DBNavigator

       
  Свойство Определяет  
  VisibleButton3 Видимые командные кнопки  
  Name   DataSource Имя компонента. Используется для доступа к свойствам компонента Имя компонента, являющегося источником данных. В качестве источника данных может выступать база данных (компонент Database), таблица (компонент Table) или результат выполнения запроса (компонент Query)  
       

Следует обратить внимание на свойство visibieButtons. Оно позволяет скрыть некоторые кнопки компонента DBNavigator и тем самым запретить выполнение соответствующих операций над файлом данных. Например, присвоив значениеFalse свойствуVisibieButtons.nbDelete можно скрыть кнопку nbDelete и тем самым запретить удаление записей.

На рис. 12 приведен вид формы приложения Архитектурные памятники Санкт-Петербурга после добавления компонента DBNavigator. Свойству DataSource компонента DBNavigator1 следует присвоить значение Table1.

Рис. 12. Окончательный вид формы приложения Архитектурные памятники Санкт-Петербурга

В принципе, после добавления в форму компонента DBNavigator простейшая программа управления базой данных готова. Эта программа обеспечивает просмотр, редактирование, добавление новых и удаление ненужных записей.

Теперь рассмотрим, что надо сделать, чтобы в поле imagei появилось изображение памятника, информация о котором выведена в форме. Разрабатываемое приложение предполагает, что изображения (фотографии) архитектурных памятников находятся в файлах в том же каталоге, что и таблица базы данных. Во время добавления информации в базу данных пользователь вводит в поле Photo имя файла фотографии, а во время просмотра фотография автоматически появляется в поле image 1.

В листинге 1. приведен текст модуля программы Архитектурные памятники Санкт-Петербурга.

Листинг 1. База данных "Архитектурные памятники Санкт-Петербурга"

unit peter_;
interface

Uses

Windows, Messages, SysUtils,

Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls,

DBCtrls, Mask, Db, DBTables,
jpeg; // чтобы можно было выводить JPG-иллюстрации;

Type

TForml = class (TForm)

Tablel: TTable;. // база данных — таблица

DataSourcel: TDataSource; // источник данных для полей

// редактирования-просмотра

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

DBEditl: TDBEdit;

DBEdit2: TDBEdit;

DBMemo1: TDBMemo;

Image1: ТImage;

DBEdit3: TDBEdit;

DBNavigatorl: TDBNavigator;

Label4: TLabel;

procedure TablelAfterScroll(DataSet: TDataSet);

procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);

procedure DBNavigatorlClick(Sender: TObject; Button: TNavigateBtn)

procedure TablelBeforeOpen(DataSet: TDataSet);
private

{ Private declarations }
public

{ Public declarations }
end;

var

Forml: TForml;

BmpPath: string; // Путь к файлам иллюстраций. Иллюстрации

// находятся в подкаталоге Data каталога программы.

Implementation

($R *.DFM}

// выводит фотографию в поле Imagel
procedure ShowFoto(foto: string);
begin
try

Forml.Imagel.Picture.LoadFromFile(BmpPath+foto);
Forml.Imagel.Visible:=True;
except

on EFOpenError do
begin

MessageDlg('Файл иллюстрации '+foto+' не найден.',

mtlnformation, [mbOk], 0);
end;
end;
end;

// переход к другой записи (следующей, предыдущей,
// первой или последней)

procedure TForm1.TablelAfterScroll(DataSet: TDataSet);
begin.

if form1.DBEdit3.Visible then
begin

form1.DBEditS.Visible:= False;
form1.Label4.Visible:=False;
end;
if
Forml.DBEditS.Text <> "

then ShowFoto(Form1.DBEditS.Text)
else form1.Imagel.Visible:=False;
end;

// нажатие клавиши в поле Фото

procedure TForml.DBEdit3KeyPress(Sender: TObject; var Key: Char);
begin

if (key = #13) then

if Forml.DBEdit3.Text <>''

then ShowFoto(Forml.DBEdit3.Text) // показать иллюстрацию
else forml,Imagel.Visible:=False;
end;

// щелчок на компоненте Навигатор

procedure TForml.DBNavigatorlClick(Sender: TObject; Button:
TNavigateBtn);

Begin

case Button of
nblnsert: begin

Imagel.Visible:=False;// скрыть область вывода иллюстрации
DBEdit3.Visible:=True; // показать поле Фото
Label4.Visible:=True; // показать метку Фото
end;
nbEdit: begin // редактирование записи

DBEdit3.Visible:=True; // показать поле Фото
Label4.Visible:=True; // показать метку Фото
end;

end;

end;

// перед открытием таблицы

procedure TForml.TablelBeforeOpen(DataSet: TDataSet);

Begin

BmpPath:=ExtractFilePath(ParamStr(0))+'data\';
end;

End.

End.

Вызов процедуры вывода фотографии (showFoto) во время просмотра базы данных выполняет процедура TForm1.Table1AfterScroll, которая обеспечивает обработку события AfterScrool для компонента Table1. Событие AfterScrool происходит всякий раз после перехода к другой (следующей, предыдущей, первой, последней) записи таблицы как результат щелчка пользователя на соответствующей кнопке компонента DBNavigator. Процедура TForml.Table1AfterScroll анализирует содержимое поля (photo) Form1.DBEdit3.Text и, если оно не пустое, что свидетельствует о наличии ссылки на файл фотографии, выводит иллюстрацию.

При просмотре базы данных поле имени файла иллюстрации (DBEdits) и его заголовок (Label4) на форме не отображаются. Если пользователь нажимает одну из кнопок компонента DBNavigator, то как результат обработки события onclick вызывается процедура TForm1.DBNavigatorlciick, которая при щелчке кнопки Добавить или Редактировать делает доступным поле DBEdits, тем самым позволяя пользователю ввести или изменить имя файла иллюстрации.

Процедура TForm1.DBEdit3KeyPress обрабатывает событие OnKeyPress для компонента DBEdits. Если пользователь ввел в поле Edits (photo) имя файла иллюстрации и нажал клавишу <Enter> (ее код равен 13), то процедура TForm1.DBEdit3KeyPress выводит иллюстрацию путем вызова процедуры ShowFoto.

Режим таблицы

Программа работы с базой данных "Архитектурные памятники Санкт-Петербурга" выводит информацию в режиме формы, в каждый момент времени пользователь может видеть только одну запись. Такой режим работы с базой данных не всегда удобен. Если необходимо видеть одновременно несколько записей базы данных, то нужно обеспечить просмотр данных в режиме таблицы.

Процесс создания приложения, обеспечивающего просмотр базы данных в режиме таблицы, рассмотрим на примере программы работы с базой данных "Школа".

Пусть база данных "Школа" (псевдоним школа), представляет собой таблицу, которая находится в файле School.db. Записи таблицы school состоят из полей: Name (Имя), Fam (Фамилия), class (Класс), Adr (Адрес) и N (Личный номер). Поля Name, Fam, class и Adr являются полями символьного типа (тип А), а поле N — числовое, с автоувеличением.

Примечание

Псевдоним Школа следует создать при помощи BDE Administrator, а таблицу (файл school.db) — при помощи Database Desktop.

Сначала в форму разрабатываемого приложения нужно добавить компоненты Table и DataSource, которые обеспечивают доступ к файлу данных, и установить значения их свойств (табл. 14).

Таблица 14. Значения свойств компонентов Table1 и DataSource1

       
  Свойство Значение  
  Tablel. DatabaseName Tablel. TableName Tablel. Active DataSourcel. Dataset Школа school. db True Tablel  
       

Для обеспечения просмотра и редактирования данных в режиме таблицы в форму приложения надо добавить компонент DBGrid, значок которого находится на вкладке Data Controls (рис. 13). Вид формы разрабатываемого приложения после добавления компонента DBGrid приведен на рис. 14.

Рис. 13. Значек компонента DBGrid

Рис. 14. Форма приложения после добавления компонента DBGrid

Компонент DBGrid обеспечивает представление базы данных в виде таблицы. Свойства компонента DBGridl определяют вид таблицы и действия, которые могут быть выполнены над данными во время работы программы. В табл. 15 перечислены некоторые свойства компонента DBGrid.

Таблица 15. Свойства компонента DBGrid

       
  Свойство Определяет  
  Name Имя компонента  
  DataSource Источник отображаемых в таблице данных  
  Columns Отображаемую в таблице информацию  
  Options. dgTitles Разрешает вывод строки заголовка столбцов  
  Options. dgIndicator Разрешает вывод колонки индикатора. Во время работы с базой данных текущая запись помечается в колонке индикатора треугольником, новая запись — звездочкой, редактируемая — специальным значком  
  Options. dgColumnResize Разрешает менять во время работы программы ширину колонок таблицы  
  Options. dgColLines Разрешает выводить линии, разделяющие колонки таблицы  
  Options. dgRowLines Разрешает выводить линии, разделяющие строки таблицы  
       

Для того чтобы задать, какая информация будет отображена в таблице во время работы программы, нужно сначала определить источник данных для таблицы (установить значения свойства DataSource), затем — установить значения уточняющих параметров свойства Columns. Значение свойства DataSource задается обычным образом, то есть в окне Object Inspector. Чтобы установить значение свойства Columns, надо в окне Object Inspector выбрать это свойство и щелкнуть на кнопке с тремя точками. В результате открывается окно редактора колонок (рис. 15).

Рис. 15. Редактор колонок

Для того чтобы в компонент DBGrid добавить колонку, обеспечивающую просмотр содержимого поля записи файла данных, необходимо нажать кнопку Add New, находящуюся на панели инструментов в верхней части окна (это единственная доступная после запуска редактора кнопка), выделить добавленный элемент и, используя Object Inspector, установить значения свойств этой колонки (табл. 16). Свойство columns компонента DBGrid представляет собой массив компонентов типа TCoiumn. Каждой колонке соответствует элемент массива. Устанавливая значения свойств компонентов column, программист задает вид колонок компонента DBGrid, тем самым определяет вид всей таблицы.

Таблица 16. Свойства компонента column

       
  Свойство Определяет  
  FieldName Поле записи, содержимое которого выводится в колонке  
  Width Ширину колонки в пикселах  
  Font Шрифт, используемый для вывода текста в ячейках колонки  
  Color Цвет фона колонки  
  Alignment Способ выравнивания текста в ячейках колонки. Текст может быть выровнен по левому краю (taLeftJustify), по центру (taCenter) или по правому краю (taRight Justify)  
  Title. Caption Заголовок колонки. Значением по умолчанию является имя поля записи  
  Title.Alignment Способ выравнивания заголовка колонки. Заголовок может быть выровнен по левому краю (taLeftJustify), по центру (taCenter) или по правому краю (taRight Justify)  
  Title. Color Цвет фона заголовка колонки  
  Title. Font Шрифт заголовка колонки  
       

В простейшем случае для каждой колонки достаточно установить значение свойства FieldName, которое определяет имя поля записи, содержимое которого будет отображаться в колонке, а также значение свойства Title.Caption, определяющего заголовок колонки. В табл. 17 приведены значения свойств columns компонента DBGridl.

Таблица 17. Значения свойств компонента DBGrid1

         
  Компонент FieldName Title. Caption  
  DBGrid1. Columns [0] DBGrid1. Columns [1] Fam Name Фамилия Имя  
         

 

         
  Компонент FieldName Title. Caption  
  DBGrid1. Columns [2] DBGrid1. Columns [ 3 ] Class Adr Класс Адрес,телефон  
         

Последнее, что надо сделать — добавить к форме компонент DBNavigator, настроив его на работу с таблицей-источником данных (свойству DataSource Нужно Присвоить значение Table1).

Окончательный вид формы приложения приведен на рис. 16.

Рис. 16. Форма после настройки компонента DBGrid1

После этого программу можно откомпилировать и запустить. Следует обратить внимание, что для того чтобы после запуска программы в окне появилась информация или, если база данных пустая, можно было вводить новую информацию, свойство Active таблицы-источника данных должно иметь значение True.

Работа с базой данных, представленной в виде таблицы, во многом похожа на работу с электронной таблицей Microsoft Excel. Используя клавиши перемещения курсора вверх и вниз, а также клавиши листания текста страницами (<Page Up> и <Page Down>), можно, перемещаясь от строки к строке, просматривать записи базы данных. Нажав клавишу <Ins>, можно добавить запись, а нажав клавишу <Del> — удалить запись. Для того чтобы внести изменения в поле записи, нужно, используя клавиши перемещения курсора влево и вправо, выбрать необходимое поле и нажать клавишу <F2>.

 



Поделиться:


Читайте также:




Последнее изменение этой страницы: 2021-12-15; просмотров: 51; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.28.21 (0.083 с.)