Разделы презентаций


Лекция №3

Содержание

Постановка задачи База данных состоит из двух таблиц: справочника "Товары" и операционной таблицы "Приход товаров". Таблицы необходимо создать и хранить в формате Paradox. Отношение между таблицами "один-ко-многим", то есть одному товару

Слайды и текст этой презентации

Слайд 1Лекция №3
Создание в среде Delphi приложения, предназначенного для учета поступающих

на склад товаров

Лекция №3Создание в среде Delphi приложения, предназначенного для учета поступающих на склад товаров

Слайд 2Постановка задачи
База данных состоит из двух таблиц: справочника "Товары"

и операционной таблицы "Приход товаров".
Таблицы необходимо создать и хранить

в формате Paradox.
Отношение между таблицами "один-ко-многим", то есть одному товару в таблице "Товары" может соответствовать более одной записи в таблице "Приход товаров".
Постановка задачи База данных состоит из двух таблиц: справочника

Слайд 3Рабочая структура таблиц

Рабочая структура таблиц

Слайд 4Для таблицы "Товары" первичный ключ построен по полю Tovary.
Для

таблицы "Приход товаров" первичный ключ построен по полю N_Prih
Для

реализации ссылочной целостности (с таблицей "Товары") необходимо построить внешний ключ по полю Tovary.
Для сортировки записей при их выводе в приложении необходимо создать индекс по полям "Дата прихода", "Товар".
Для таблицы

Слайд 5Создание псевдонима базы данных
При работе с таблицами локальных баз

данных (в число которых входят таблицы СУБД Paradox и dBase)

базой данных считается каталог на диске, в котором хранятся файлы таблиц БД, индексов, примечаний (мемо-полей) и т.д. Для хранения одной таблицы создается отдельный файл. Такие же отдельные файлы создаются для хранения индексов таблицы и мемо-полей.
Обращение к БД из утилит и программы осуществляется по псевдониму (алиасу, alias) базы данных. Такой псевдоним должен быть зарегистрирован в файле конфигурации конкретного компьютера при помощи утилиты BDE Administrator.
Создание псевдонима базы данных При работе с таблицами локальных баз данных (в число которых входят таблицы СУБД

Слайд 6Запуск утилиты BDE Administrator

Запуск утилиты BDE Administrator

Слайд 7Выберем в главном меню Элемент Object \ New. В появившемся

окне оставим тип создаваемой БД без изменений (STANDARD) и нажмем

Ok
Выберем в главном меню Элемент Object \ New. В появившемся окне оставим тип создаваемой БД без изменений

Слайд 8В левом окне появившегося окна администратора БД мы увидим строку

с именем STANDARDl. Изменим это имя на "PROBA". Для этого

щелкнем мышью на названии БД и введем новый текст.
В левом окне появившегося окна администратора БД мы увидим строку с именем STANDARDl. Изменим это имя на

Слайд 9В правом окне приведены параметры БД. Оставим их без изменения,

изменив лишь PATH. Этот параметр указывает путь к каталогу, в

котором будет расположена БД. Можно ввести путь вручную, но лучше воспользоваться средствами администратора: для этого нужно щелкнуть по полю PATH и нажать на появившуюся в правом углу поля кнопку. Затем следует выбрать каталог D:\Students\П_411\PROBA и нажать кнопку Ok
В правом окне приведены параметры БД. Оставим их без изменения, изменив лишь PATH. Этот параметр указывает путь

Слайд 11Теперь необходимо запомнить определение псевдонима. Для этого в левом окне

администратора БД необходимо щелкнуть по имени псевдонима правой кнопкой мыши

и во всплывающем меню выбрать элемент Apply. В появившемся диалоговом окне, в котором спрашивается, собираемся ли мы запоминать изменения для псевдонима, необходимо нажать кнопку Ok. Затем следует выйти из утилиты BDE Administrator. Теперь создание псевдонима завершено и к нему можно обращаться из других утилит и приложений. Однако каталог, на который ссылается псевдоним БД, еще пуст. Необходимо создать таблицы базы данных.
Теперь необходимо запомнить определение псевдонима. Для этого в левом окне администратора БД необходимо щелкнуть по имени псевдонима

Слайд 12Создание таблиц базы данных
запустить утилиту Database Desktop (DBD).
После

запуска утилиты установим рабочий псевдоним утилиты. Это псевдоним, с которым

утилита работает по умолчанию. Если рабочий псевдоним не установлен, придется при работе с DBD всякий раз указывать псевдоним, что отнимает время.
Создание таблиц базы данных запустить утилиту Database Desktop (DBD). После запуска утилиты установим рабочий псевдоним утилиты. Это

Слайд 13Для установки рабочего псевдонима нужно выбрать элемент главного меню File

| Working Directory и в выпадающем списке Aliases выбрать имя

псевдоним PROBA, после чего нажать кнопку Ok.
Для установки рабочего псевдонима нужно выбрать элемент главного меню File | Working Directory и в выпадающем списке

Слайд 14Для создания таблицы БД нужно выбрать элемент главного меню File

\ New | Table. В появившемся окне Create Table оставляем

без изменения тип создаваемой таблицы (Paradox 7) и нажимаем кнопку Ok. После этого появится окно определения структуры таблицы БД
Для создания таблицы БД нужно выбрать элемент главного меню File \ New | Table. В появившемся окне

Слайд 15Каждая строка таблицы соответствует полю. Назначения столбцов:
• Field Name

- имя поля;
• Type - тип поля;
• Size - размер

поля (для строковых полей, поскольку иные поля подразумевают размер, определяемый типом поля);
• Key - содержит звездочку '*', если поле входит в состав первичного ключа. Если в первичный ключ входит несколько полей, они должны определяться в той последовательности, в которой они присутствуют в первичном ключе.
Каждая строка таблицы соответствует полю. Назначения столбцов: • Field Name - имя поля;• Type - тип поля;•

Слайд 16Кроме того, все поля, входящие в состав первичного индекса, должны

определяться перед иными полями, то есть быть в списка полей

наверху.

Определим поля, входящие в таблицу "Товары". Введем Tovary в столбец Field Name. Для того, чтобы определить тип поля, щелкните по столбцу Type и нажмите клавишу пробела. В ответ на это будет выдан список типов полей, из которых необходимо произвести выбор нужного типа.

Кроме того, все поля, входящие в состав первичного индекса, должны определяться перед иными полями, то есть быть

Слайд 17возможные типы полей СУБД Paradox: 

возможные типы полей СУБД Paradox: 

Слайд 20Для того, чтобы определить тип поля Tovar, выберем А и

затем в столбце Sire укажем значение 20. В столбце Key

поместим звездочку, означающую, что данное поле входит в состав первичного ключа. Для этого нажмем любой символ на клавиатуре. Повторное нажатие любого символа снимает отметку звездочкой в столбце Kеу.
Для того, чтобы определить тип поля Tovar, выберем А и затем в столбце Sire укажем значение 20.

Слайд 21Введем определения и других столбцов таблицы Tovary. Для каждого поля

определим требование обязательного заполнения поля значением. Для этого, переходя от

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

Слайд 22Minimum value - определяет минимальное значение поля, Maximum value -

определяет максимальное значение поля;
Default value - определяет значение поля по

умолчанию;
• Picture - определяет шаблон изображения поля. Для формирования шаблона следует нажать кнопку Assist.
Отсутствие значения в одном из полей означает отсутствие ограничений на значение поля.
Minimum value - определяет минимальное значение поля, Maximum value - определяет максимальное значение поля;Default value - определяет

Слайд 23Установка соответствующего языкового драйвера
для того чтобы русский текст изображался

на экране без искажений (Table property/Table language/Modify/Pdox ANSI Cyrillic/ok). Процедуру

установки языкового драйвера надо проводить до создания индексов по символьным полям и установления по ним ссылочной целостности.
Установка соответствующего языкового драйвера для того чтобы русский текст изображался на экране без искажений (Table property/Table language/Modify/Pdox

Слайд 25Запоминание таблицы
Чтобы запомнить сохраненную таблицу на диске, следует нажать кнопку

Save As. Затем в появившемся окне следует указать имя таблицы.

При желании можно указать каталог или псевдоним, отличные от принятых по умолчанию. Напомним, что по умолчанию принимается рабочий каталог или каталог, определяемый рабочим псевдонимом.
Запоминание таблицыЧтобы запомнить сохраненную таблицу на диске, следует нажать кнопку Save As. Затем в появившемся окне следует

Слайд 27После того, как мы определим имя создаваемой таблицы (Tovary), в

каталоге D:\Students\П_411\PROBA (он назначен псевдониму PROBA, используемому нами в качестве

рабочего псевдонима) будет создан файл Tovary.DB и файлы индексов с соответствующими расширениями.
После того, как мы определим имя создаваемой таблицы (Tovary), в каталоге D:\Students\П_411\PROBA (он назначен псевдониму PROBA, используемому

Слайд 28Изменение структуры существующей таблицы
Если в структуру существующей таблицы БД

необходимо внести изменения, следует выбрать элемент меню File | Open

| Table, в появившемся диалоговом окне выбрать имя таблицы и нажать кнопку Ok. Будет показано содержимое таблицы: в таблице Tovary отсутствуют записи, что не удивительно, поскольку мы их еще не вводили).
Изменение структуры существующей таблицы Если в структуру существующей таблицы БД необходимо внести изменения, следует выбрать элемент меню

Слайд 29В том случае, когда мы хотим ввести новые записи в

таблицу прямо в DBD (а также изменить значения в некоторых

записях или произвести удаление), следует нажать кнопку F9. После этого таблица будет переведена в режим внесения изменений.
Чтобы изменить структуру таблицы, выберите элемент меню Table | Restructure. Вслед за этим будет показано диалоговое окно для определения структуры таблицы.
В том случае, когда мы хотим ввести новые записи в таблицу прямо в DBD (а также изменить

Слайд 31Определим структуру таблицы "Приход товаров".(ЭУН)

Определим структуру таблицы

Слайд 32всем полям присваиваем атрибут Required Field, кроме автоинкрементного поля N_Prih.
создаем

индекс по полям DatPrih и Tovar. Для этого в комбинированном

списке Table properties выбираем элемент Secondary Indexes. Нажимаем кнопку Define и переводим вправо нужные поля. Имя индекса – Sort_DatPrih_Tovar
всем полям присваиваем атрибут Required Field, кроме автоинкрементного поля N_Prih.создаем индекс по полям DatPrih и Tovar. Для

Слайд 34Определяем ссылочную целостность между таблицами.
Таблицы Tovary и Prihod находятся

в отношении один ко многим, т.е. с одной записью таблицы

Tovary может быть связано несколько записей по приходу того же товара в таблице Prihod.
В качестве поля связи выступает поле Tovar.
Определяем ссылочную целостность между таблицами. Таблицы Tovary и Prihod находятся в отношении один ко многим, т.е. с

Слайд 35Открыть таблицу Prihod (File/Table/Open/Restructure).

В выпадающем списке Table Properties выбрать

элемент Refrential Integrity. Имя ссылочной целостности – Tovary_Prihod_Integrity.

Открыть таблицу Prihod (File/Table/Open/Restructure). В выпадающем списке Table Properties выбрать элемент Refrential Integrity. Имя ссылочной целостности –

Слайд 38Свойства компонентов:
Table1:
DatabaseName – proba (псевдоним БД)
property DatabaseName: - определяет локальный

псевдоним приложения, который может использоваться при доступе к БД вместо

пути или имени БД..

Tablename – Tovary.DB
Active – True;

DataSource1
Dataset – Table1;
Свойства компонентов:Table1:DatabaseName – proba (псевдоним БД)property DatabaseName: - определяет локальный псевдоним приложения, который может использоваться при доступе

Слайд 39DBGrid1:
DataSource – DataSource1;

Для Table2, DataSource2,DBGrid2 – то же , но

с таблицей Prihod.

DBGrid1:DataSource – DataSource1;Для Table2, DataSource2,DBGrid2 – то же , но с таблицей Prihod.

Слайд 41Если сейчас запустить приложение, то обе таблицы будут независимы друг

от друга. Чтобы содержимое подчиненного набора соответствовало выбору записи в

главном наборе, подчиненную таблицу нужно связать с главной. В компоненте Table2:
MasterSource – dataSource1
Masterfields – связать по полю Tovar.
Если сейчас запустить приложение, то обе таблицы будут независимы друг от друга. Чтобы содержимое подчиненного набора соответствовало

Слайд 42property MasterFields: string; - используется в дочернем НД для указания

имени поля связи между родительским и дочерним НД.
property MasterSource: TDataSource;

- используется в дочернем НД для указания имени компонента TDataSource, связанного с родительским НД.
property MasterFields: string; - используется в дочернем НД для указания имени поля связи между родительским и дочерним

Слайд 45Наша программа имеет 2 недостатка
В ней показан автоинкрементный столбец N_Prih,

который необходим для обеспечения уникальности записей в таблице Prihod. Он

не несет никакой смысловой нагрузки, поэтому его лучше не показывать
Дважды щелкнуть по Table2 или правой кнопкой и выберите Редактор полей, затем добавьте все поля кроме N_Prih
Наша программа имеет 2 недостаткаВ ней показан автоинкрементный столбец N_Prih, который необходим для обеспечения уникальности записей в

Слайд 47Название колонок в сетке DBGrid представлены латинскими буквами – эти

названия следует заменить на русские. Для каждого добавленного в редакторе

полей поля, Delphi автоматически создает объект класса Tfield и получает соответствующее имя , Table2 Tovar, если какое то поле не включено в список полей, оно становится невидимым для программы и не появляется в соответствующем НД.
Название колонок в сетке DBGrid представлены латинскими буквами – эти названия следует заменить на русские. Для каждого

Слайд 48Шелкнуть по соответствующему полю и изменить свойство DisplayLabel – Товар,

дата прихода, количество. Иначе это можно было сделать в редактор

столбцов компонента DBGrid1.
Шелкнуть по соответствующему полю и изменить свойство DisplayLabel – Товар, дата прихода, количество. Иначе это можно было

Слайд 52Отсортируем записи в НД Table2 по дате прихода товара.
Для

этого разорвем связь между таблицами один-ко многим.
В свойстве Table2 -

Mastersource , Masterfield убрать ссылки.
Раскроем список Tables.Indexfieldnames и выбираем DatPrih; Tovar.
После этого вызвать редактор столбцов DBGrid2 и переташить DatPrih перед Tovar.
Отсортируем записи в НД Table2 по дате прихода товара. Для этого разорвем связь между таблицами один-ко многим.В

Слайд 54 Добавим визуальные компоненты
Tbutton – 5 компонентов
TDBLookupComboBox
ListSource – DataSource1
ListField – Tovary
keyField

– Tovary
DataSource – dataSource2
DataField – Tovary

Добавим визуальные компонентыTbutton – 5 компонентовTDBLookupComboBoxListSource – DataSource1ListField – TovarykeyField – TovaryDataSource – dataSource2DataField – Tovary

Слайд 55TBDEdit
DataSource – DataSource2
DataField - DatPrih
TBDEdit
DataSource – DataSource2
DataField - Kolvo

TBDEditDataSource – DataSource2DataField - DatPrihTBDEditDataSource – DataSource2DataField - Kolvo

Слайд 57Напишем обработчики событий OnClick для компонентов TButton
procedure Form1.InsertButtonClick(Sender: TObject);
begin
if

TabPrih.State= dsBrowse then
TabPrih.Insert;
end;

Напишем обработчики событий OnClick для компонентов TButton procedure Form1.InsertButtonClick(Sender: TObject);beginif TabPrih.State= dsBrowse thenTabPrih.Insert;end;

Слайд 58procedure TForm1.EditButtonClick(Sender: TObject);
begin
if TabPrih.State= dsBrowse then
TabPrih.Edit;
end;

procedure TForm1.EditButtonClick(Sender: TObject);begin if TabPrih.State= dsBrowse thenTabPrih.Edit;end;

Слайд 59procedure Form1.DeleteButtonClick(Sender: TObject);
begin
if TabPrih.State= dsBrowse then
if MessageDlg('Подтвердите удаление записи',
mtConfirmation,[mbYes,mbNo],0)=mrYes then
TabPrih.Delete;
end;

(ЭУН, ГСХ)

procedure Form1.DeleteButtonClick(Sender: TObject);beginif TabPrih.State= dsBrowse thenif MessageDlg('Подтвердите удаление записи',mtConfirmation,[mbYes,mbNo],0)=mrYes thenTabPrih.Delete;end; (ЭУН, ГСХ)

Слайд 60procedure TForm1.PostButtonClick(Sender: TObject);
begin
if TabPrih.State in [ dsInsert,dsEdit] then
TabPrih.Post;
end;

procedure TForm1.PostButtonClick(Sender: TObject);beginif TabPrih.State in [ dsInsert,dsEdit] thenTabPrih.Post;end;

Слайд 61procedure TForm1.CancelButtonClick(Sender: TObject);
begin
if TabPrih.State in [ dsInsert,dsEdit] then
TabPrih.cancel;
end;

procedure TForm1.CancelButtonClick(Sender: TObject);beginif TabPrih.State in [ dsInsert,dsEdit] thenTabPrih.cancel;end;

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика