Сумма задолженности заказчиков по оплате отгруженных изделий за заданный месяц
1. Анализ предметной области
.1 Описание предметной области и
функции решаемых задач
В качестве примера рассматривается упрощенный
вариант деятельности Отдела сбыта продукции предприятия. Предметной областью
являются некоторые функции, выполняемые сотрудниками отдела сбыта предприятия в
процессе планирования, учета, контроля и анализа.
В отделе сбыта продукции имеется отделение,
осуществляющее договорные кампании. В процессе этих кампаний заказчики
заключают договоры с предприятиями по отгрузке различных готовых изделий.
Затем по этим спискам договоров предприятия
выполняет отгрузку заказанных изделий, выписывая заказчику товарно-транспортные
накладные, по которым они должны оплачивать отгрузку заказанных изделий в
текущем месяце. Заказчики имеют право делать платежи частями или погашать всю
сумму сразу. Каждое оплата осуществляется через банк и оформляется отдельными
платежными поручениями, которые в дальнейшем поступают в отдел доходов, где они
учитываются, тщательно контролируются и анализируются.
Следовательно, функции сотрудников отдела сбыта
готовой продукции заключаются в следующем:
в процессе планирования:
Отгрузки продукции в соответствии с договорами;
Поступления денежных средств за продажу
продукции.
в процессе учета:
Фактически отгруженной продукции;
Поступления денежных средств, перечисленных в
качестве предоплаты за заказанную продукцию.
в процессе анализа:
Корректности договоров на поставку продукции;
Выполнения плана отгрузки;
Поступления предоплаты за заказанную продукцию.
Автоматизация указанных задач позволит
оперативно вести учет доходов, контролировать их поступления, анализировать
структуру платежных поступлений (по различным заказчикам) и тем, самым,
улучшить качество принимаемых решений.
1.2 Перечень входных (первичных)
документов
В результате обследования предметной области
определены входные (первичные) документы, необходимые для решения нашей задачи.
Уточним, какие первичные документы будут использованы для решения задачи.
Реквизит
|
Наименование
заказчика
|
Сумма
отгрузки
|
Сумма
оплаты
|
Долг
|
Документ
|
Список
заказчиков
|
Товаро-транспортная
накладная
|
Платежное
поручение
|
Вычислить
|
Информация, циркулирующая в рассматриваемой
предметной области, отражается в документах и для решения данной задачи
необходимы первичные документы: Список изделий, список единиц измерений, список
складов, список заказчиков, список договоров, товарно-транспортные накладные,
Платежные поручения.
Данные о номенклатуре изделия, о складах,
сведения о заказчиках являются условно-постоянной информацией. Эти данные отображаются
в документах Список выпускаемых изделий, Справочник единиц измерения, Список
складов и Список заказчиков. Они имеют табличную форму.
Список
выпускаемых изделий
|
код
изделия
|
наименование
изделия
|
код
единицы измерения
|
цена
|
номер
склада
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Оперативная информация включает следующую
информацию:
Рис. 1
Данные о планируемых отгрузках изделий
заказчикам содержатся в документе «Договор»:
В процессе договорной кампании составляются
договора на поставку изделий. Договор состоит из двух частей: общей части и
спецификации. Общая часть содержит информацию о номере договора и реквизиты
заказчика. В спецификации содержатся сведения об изделиях, месяце отгрузки,
количестве поставляемых изделий.
На основе договоров составляется финансовый
план, и разрабатываются срока поставки и отгрузки изделий заказчикам. При
отгрузке продукции заказчикам выписывается документ «Товарно-транспортная
накладная», также состоящая из общей части и спецификации.
Рис .2
В анкетной части данного документа содержатся
его номер и дата выписки, номер договора и сведения о заказчике. В табличной
части ТТН приводятся данные об отгруженных по данной ТТН изделиях.
Оплата продукции заказчиком оформляется
документом, называемым «Платежное поручение».
Рис. 3
В анкетной части ПП содержатся номер ПП, номер
ТТН или номер счета, дата составления документа и сведения о плательщике. В
табличной части ПП приводятся данные об оплачиваемых заказчиком по ПП изделиях.
В следующей таблице приведены рекомендуемые
характеристики реквизитов документов предметной области. Проектировщик при
необходимости может их изменить, а также добавить другие:
Наименование
реквизитов входных документов
|
Характеристика
реквизитов
|
|
Тип
|
Максимальная
длина знаков
|
Код
изделия
|
текстовый
|
2
|
Наименование
изделия
|
текстовый
|
10
|
Код
единицы измерения
|
текстовый
|
3
|
Цена
|
денежный
|
8
|
Номер
склада
|
текстовый
|
3
|
Наименование
единицы измерения
|
текстовый
|
10
|
Наименование
склада
|
текстовый
|
10
|
Код
заказчика
|
текстовый
|
5
|
Наименование
заказчика
|
текстовый
|
20
|
Адрес
|
текстовый
|
50
|
Номер
договора
|
текстовый
|
5
|
Месяц
|
текстовый
|
2
|
Количество
|
числовой
|
5
|
Номер
ТТН
|
текстовый
|
3
|
Дата
|
дата/время
|
10
|
Номер
ПП
|
текстовый
|
4
|
1.3 Ограничения предметной области
по индивидуальной задаче
Предприятие выпускает несколько видов изделий,
использует несколько единиц измерения
У разных изделий может быть одинаковая единица
измерения
На предприятии имеется несколько складов
На одном складе может храниться несколько
наименований готовых изделий
С одним заказчиком можно заключить несколько
договоров
В каждом договоре может быть несколько
наименований изделий
Каждая ТТН относится только к одному договору
Одной ТТН может соответствовать несколько ПП
Оплата должна быть произведена в текущем месяце
заказа
В одном документе об оплате может быть несколько
изделий
Все цены в рублях
2. Постановка задачи
.1 Организационно-экономическая
сущность комплекса решаемых задач
Одно из основных проблем Отдела сбыта продукции
любого предприятия является несвоевременная или неполная оплата отгруженных
изделий заказчиками, что может привести к нехватке средств на предприятии для
дальнейшей работы.
Для решения этой проблемы необходимо
своевременно получать информацию о недоплатах, чтобы вовремя принять
соответствующие меры. Поэтому поставленная задача позволит решить эту проблему.
Рассмотрим организационно-экономическую сущность данной задачи. За заданный
период времени, в данном случае за заданный месяц, надо получить сумму
задолженности заказчиков по оплате отгруженных изделий. Для решения этой задачи
экономист должен иметь следующую информацию по каждому заказчику: сумму
отгрузки и сумму оплаты. Экономическая сущность задачи заключается в
необходимости оперативного получения информации о недоплатах за заданный месяц
различными заказчиками и принятию управленческих решений по устранению долгов.
2.2 Описание выходной информации
Выходную информацию представим в виде отчетной
формы:
Суммы задолженности заказчиков за _______ месяц
Наименование
заказчика
|
Сумма
отгрузки
|
Сумма
оплаты
|
Долг
|
|
|
|
|
|
|
|
|
Итого
|
|
|
|
2.3 Описание входной информации
Входную информацию
№
п/п
|
Наименование
документа
|
Реквизиты
|
1
|
Список
изделий
|
Код
изделия Наименование изделия Код единицы измерения Цена Номер склада
|
2
|
Список
заказчиков
|
Код
заказчика Наименование заказчика адрес
|
3
|
Справочник
единиц измерения
|
код
единицы измерения наименование единицы измерения
|
4
|
Список
складов
|
номер
склада наименование склада
|
5
|
Список
договоров
|
номер
договора код заказчика месяц отгрузки код изделия количество
|
6
|
Товарно-транспортная
накладная
|
номер
ТТН дата отгрузки Номер договора Код изделия количество
|
7
|
Платежное
поручение
|
Номер
ТТН Номер ПП Дата оплаты Код изделия количество
|
3. Разработка информационного
обеспечения
3.1 Анализ входной информации
предметной области и выделение информационных объектов
Реквизитный состав первичных документов:
Код изделия, наименование изделия, код единицы
измерения, цена, номер склада, код заказчика, наименование заказчика, адрес,
наименование единицы измерения, наименование склада, номер договора, месяц
отгрузки, номер ТТН, дата отгрузки, количество, номер ПП, дата оплаты.
Необходимо проанализировать каждый реквизит на
наличие взаимосвязей с другими реквизитами. Реквизит приобретает смысл только
тогда, когда он связан с другими реквизитами, обладающими смысловым единством.
Например, реквизиты Код изделия и Наименование
изделия отражают сведения об изделиях. Номер склада и Наименование склада -
сведения о складах; код единицы измерения и наименование единицы измерения -
сведения об используемых единицах измерения; код заказчика, наименование
заказчика, адрес - сведения о заказчиках.
Среди реквизитов, описывающих сущность, можно
выделить один или несколько реквизитов, которые однозначно идентифицируют
(определяют) экземпляр сущности. Такой реквизит является ключом.
Между ключом и другими реквизитам существует
функциональная зависимость. Например, существует функциональная зависимость
между кодом изделия и его наименованием. По ключу можно отыскать любой нужный
экземпляр среди других экземпляров сущности. Кандидатов в ключевые реквизиты в
группе реквизитов может быть несколько. Из реквизитов Код изделия и
Наименование изделия выберем в качестве ключа Код изделия, так как этот
реквизит характеризуется компактным значением и удобен для обработки. В
дальнейшем в других сущностях вместо наименования в качестве ключа будем
выбирать код.
Данные договора на поставку продукции можно
свести в таблицу:
№
договора
|
Код
заказчика
|
Месяц
отгрузки
|
Код
изделия
|
Количество
|
Д100
|
002
|
04
|
04
|
100
|
Д101
|
003
|
03
|
03
|
50
|
|
|
|
05
|
30
|
Д102
|
001
|
03
|
01
|
5
|
|
|
|
04
|
200
|
Д103
|
003
|
04
|
01
|
10
|
|
|
|
02
|
20
|
|
|
|
04
|
150
|
Д104
|
002
|
05
|
01
|
15
|
|
|
|
02
|
15
|
Д105
|
001
|
04
|
02
|
25
|
Д106
|
002
|
03
|
03
|
45
|
|
|
|
05
|
70
|
Для устранения избыточности информации при
автоматизированной обработке появилась необходимость в представлении данных в
виде двух групп.
группа. Все общие сведения о договоре: номер
договора и код заказчика представлены в таблице:
номер
договора
|
код
заказчика
|
Д100
|
002
|
Д101
|
003
|
Д102
|
001
|
Д103
|
003
|
Д104
|
002
|
Д105
|
001
|
Д106
|
002
|
2 группа. Спецификация договора: номер
документа, месяц отгрузки, код изделия и количество:
Номер
договора
|
Месяц
отгрузки
|
Код
изделия
|
Количество
|
Д100
|
04
|
04
|
100
|
Д101
|
03
|
03
|
50
|
|
|
05
|
30
|
Д102
|
03
|
01
|
5
|
|
|
04
|
200
|
Д103
|
04
|
01
|
10
|
|
|
02
|
20
|
|
|
04
|
150
|
Д104
|
05
|
01
|
15
|
|
|
02
|
15
|
Д105
|
04
|
02
|
25
|
Д106
|
03
|
03
|
45
|
|
|
05
|
70
|
В качестве ключа для первой группы используется
Номер договора. Для второй группы этого ключа недостаточно, так как он
повторяется, поэтому используется составной ключ: Номер договора + Код изделия.
Аналогично представляем в виде двух групп
документы: платежное поручение и товарно-транспортные накладные.
Факт поступление платежей из платежных
поручений:
№
ТТН
|
№
ПП
|
Дата
оплаты
|
Код
изделия
|
Количество
|
Т1
|
П-01
|
26.03.2004
|
03
|
50
|
|
П-02
|
31.03.2004
|
05
|
25
|
Т2
|
П-03
|
26.04.2004
|
01
|
5
|
|
П-04
|
27.04.2004
|
02
|
10
|
|
П-05
|
25.04.2004
|
04
|
110
|
Т3
|
П-06
|
04.05.2004
|
01
|
10
|
|
|
|
02
|
5
|
Т4
|
П-07
|
21.04.2004
|
04
|
20
|
|
П-08
|
23.04.2004
|
04
|
50
|
Т5
|
П-09
|
02.04.2004
|
02
|
10
|
|
П-10
|
24.04.2004
|
02
|
10
|
Т6
|
П-11
|
13.05.2004
|
01
|
5
|
|
П-12
|
20.05.2004
|
04
|
50
|
|
П-13
|
25.05.2004
|
04
|
50
|
Т7
|
П-14
|
21.03.2004
|
03
|
45
|
70
|
группа: Номер ТТН, номер ПП и дата оплаты
представлены в таблице:
Платежи
Номер
ТТН
|
Номер
ПП
|
Дата
оплаты
|
Т1
|
П-01
|
26.03.04
|
|
П-02
|
31.03.04
|
Т2
|
П-03
|
26.04.04
|
|
П-04
|
27.04.04
|
|
П-05
|
25.04.04
|
Т3
|
П-06
|
04.05.04
|
Т4
|
П-07
|
21.04.04
|
|
П-08
|
23.04.04
|
Т5
|
П-09
|
02.04.04
|
|
П-10
|
24.04.04
|
Т6
|
П-11
|
13.05.04
|
|
П-12
|
20.05.04
|
|
П-13
|
25.05.04
|
Т7
|
П-14
|
21.03.04
|
группа: Номер ТТН, Номер ПП, код изделия и
количество представлены в таблице:
Спецификация
ПП
|
Номер
ТТН
|
Номер
ПП
|
Код
изделия
|
Количество
|
Т1
|
П-01
|
03
|
50
|
|
П-02
|
05
|
25
|
Т2
|
П-03
|
01
|
5
|
|
П-04
|
02
|
10
|
|
П-05
|
04
|
110
|
Т3
|
П-06
|
01
|
10
|
|
|
02
|
5
|
Т4
|
П-07
|
04
|
20
|
|
П-08
|
04
|
50
|
Т5
|
П-09
|
02
|
10
|
|
П-10
|
02
|
10
|
Т6
|
П-11
|
01
|
5
|
|
П-12
|
04
|
50
|
|
П-13
|
04
|
50
|
Т7
|
П-14
|
03
|
45
|
|
|
05
|
70
|
В качестве составного ключа для первой группы
используются Номер ТТН + Номер ПП, так как один номер ТТН может соответствовать
разным номерам ПП.
Для второй группы этого ключа недостаточно, так
он повторяется. Поэтому используется составной ключ Номер ТТН + Номер ПП + Код
Изделия.
Информацию товарно-транспортных накладных можно
представить с виде следующей таблицы:
Номер
ТТН
|
Дата
отгрузки
|
Номер
договора
|
Код
изделия
|
Количество
|
Т1
|
26.03.2004
|
Д101
|
03
|
50
|
|
|
|
05
|
30
|
Т2
|
17.04.2004
|
Д103
|
01
|
10
|
|
|
|
02
|
20
|
|
|
|
04
|
150
|
Т3
|
02.05.2004
|
Д104
|
01
|
15
|
|
|
|
02
|
15
|
Т4
|
20.04.2004
|
Д100
|
04
|
100
|
Т5
|
01.04.2004
|
Д105
|
02
|
25
|
Т6
|
13.05.2004
|
Д102
|
01
|
5
|
|
|
|
04
|
200
|
Т7
|
10.03.2004
|
Д106
|
03
|
45
|
|
|
|
05
|
70
|
1 группа: Номер ТТН, Дата отгрузки и номер
договора представлены в таблице:
Список
товарно-транспортных накладных
|
Номер
ТТН
|
Дата
отгрузки
|
Номер
договора
|
№_ТТН
|
ДАТА_ОТГР
|
№_ДОГ
|
Т1
|
26.03.04
|
Д101
|
Т2
|
17.04.04
|
Д103
|
Т3
|
02.05.04
|
Д104
|
Т4
|
20.04.04
|
Д100
|
Т5
|
01.04.04
|
Д105
|
Т6
|
13.05.04
|
Д102
|
Т7
|
10.03.04
|
Д106
|
группа: Номер ТТН, Код изделия и количество
представлены в таблице:
Номер
ТТН
|
Код
изделия
|
Количество
|
Т1
|
03
|
50
|
|
05
|
30
|
Т2
|
01
|
10
|
|
02
|
20
|
|
04
|
150
|
Т3
|
01
|
15
|
|
02
|
15
|
Т4
|
04
|
100
|
Т5
|
02
|
25
|
Т6
|
01
|
5
|
|
04
|
200
|
Т7
|
03
|
45
|
|
05
|
70
|
В качестве ключа для первой группы используется
только Номер ТТН, так как одному номеру ТТН соответствует только один номер
договора. Для второй группы этого ключа недостаточно, так как он повторяется и
поэтому используется составной ключ Номер ТТН + Код Изделия
Покажем на схеме функционально-зависимые
реквизиты неповторяющиеся в каждой группе:
Реквизиты
|
Информационные
объекты
|
|
Изделия
|
Един
измер
|
Склад
|
Заказчики
|
Договоры
|
СДОГ
|
ТТН
|
СТТН
|
ПП
|
СПП
|
код
изделия
|
|
|
|
|
|
|
|
|
|
|
наим
изделия
|
|
|
|
|
|
|
|
|
|
|
код
един измер
|
|
|
|
|
|
|
|
|
|
|
цена
|
|
|
|
|
|
|
|
|
|
|
номер
склада
|
|
|
|
|
|
|
|
|
|
|
наим
един измер
|
|
|
|
|
|
|
|
|
|
|
наим
склада
|
|
|
|
|
|
|
|
|
|
|
код
заказчика
|
|
|
|
|
|
|
|
|
|
|
наим
заказчика
|
|
|
|
|
|
|
|
|
|
|
адрес
|
|
|
|
|
|
|
|
|
|
|
номер
договора
|
|
|
|
|
|
|
|
|
|
|
месяц
отгрузки
|
|
|
|
|
|
|
|
|
|
|
количество
|
|
|
|
|
|
|
|
|
|
Номер
ТТН
|
|
|
|
|
|
|
|
|
|
|
дата
отгрузки
|
|
|
|
|
|
|
|
|
|
|
Номер
ПП
|
|
|
|
|
|
|
|
|
|
|
дата
оплаты
|
|
|
|
|
|
|
|
|
|
|
Жирной линией выделены ключевые реквизиты.
Для решения задачи выделены 10 групп с ключевыми
реквизитами (ключи подчеркнуты):
ИЗДЕЛИЯ (код изделия, наименование изделия, код
единицы измерения, цена, номер склада);
СПРАВОЧНИК ЕДИНИЦ ИЗМЕРЕНИЯ (код единицы
измерения, номер склада);
СПИСОК СКЛАДОВ (номер склада, наименование
склада);
СПИСОК ЗАКАЗЧИКОВ (код заказчика, наименование
заказчик, адрес);
ДОГОВОРЫ (номер договора, код заказчика);
СПЕЦИФИКАЦИЯ ДОГОВОРОВ (номер договора, месяц
отгрузки, код изделия, количество);
ТОВАРНО-ТРАНСПОТНЫЕ НАКЛАДНЫЕ (номер ТТН, дата
отгрузки, номер договора);
СПЕЦИФИКАЦИЯ ТТН (Номер ТТН, код изделия,
количество);
ПЛАТЕЖНЫЕ ПОРУЧЕНИЯ (Номер ТТН, номер ПП, Дата
оплаты);
СПЕЦИФИКАЦИЯ ПП (Номер ТТН, номер ПП, код
изделия, количество).
.2 Определение связей информационных
объектов и построение информационно-логической модели
В результате анализа получили 10 информационных
объектов или сущностей. Проведем попарный анализ между ними:
Список Изделий - Специализация ПП (Список
Изделий - главный ИО, Специализация ПП - подчиненный ИО). Тип связи 1:М, так
как один вид изделия может быть оплачен несколько раз, но один платеж соответствует
только одному виду изделия. Связь между объектами осуществляется с помощью
реквизита Код изделия.
Список Изделий - Специализация договора (Список
Изделий - главный ИО, Специализация договора - подчиненный ИО). Тип связи 1:М,
так как один вид изделия может быть заказан несколько раз, но один заказ
соответствует одному виду изделия. Связь между этими объектам обеспечивается с
помощью реквизита Код изделия.
Список Изделий - Специализация ТТН (Список
Изделий - главный ИО, Специализация ТТН - подчиненный ИО). Тип связи 1:М, так
как один вид изделия может быть отгружен несколько раз, но одна отгрузка
соответствует определенному виду изделия. Связь между этими объектами
осуществляется с помощью реквизита Код Изделия.
Справочник единиц измерения - Список Изделий
(Справочник единиц измерения - главный ИО, Список Изделий - подчиненный ИО).
Тип связи 1:М, так как одна единица измерения может быть одинаковой у
нескольких видов изделий, но один вид изделия соответствует одной единице
измерения. Связь между этими объектами обеспечивается с помощью реквизита Код
единицы измерения.
Список складов - Список Изделий (Список складов
- Главный ИО, Список Изделий - подчиненный ИО). Тип связи 1:М, так как на одном
складе могут храниться несколько видов изделий, но одному виду изделия
соответствует только один склад. Связь между этими объектами обеспечивается с
помощью реквизита Номер склада.
Платежные поручения - Специализация ПП
(Платежные поручения - главный ИО, Специализация ПП - подчиненный ИО). Тип
связи 1:М, так как одному номеру платежного поручения соответствует оплата за
несколько видов изделия, но оплата одно вида изделия относится к одному номеру
платежного поручения. Связь между объектами обеспечивается реквизитами Номер ПП
и Номер ТТН.
Список договоров - Спецификация договоров
(Список договоров - главный ИО, Спецификация договоров - подчиненный ИО). Тип
связи 1:М, так как по одному договору могут заказываться несколько видов
изделия, но заказ одного вида изделия соответствует одному номеру договора.
Связь между этими объектами обеспечивается с помощью реквизита Номер договора.
Список договоров - Товарно-транспортные
накладные (Список договоров - главный ИО, Товарно-транспортные накладные -
подчиненный ИО). Тип связи 1:М, так как по одному договору могут быть
произведены несколько отгрузок, но одной отгрузке соответствует один договор.
Связь между этими объектами обеспечивается с помощью реквизита Номер договора.
Список заказчиков - Список договоров (Список
заказчиков - главный ИО, Список договоров - подчиненный ИО). Тип связи 1:М, так
как один заказчик может заключать несколько договоров, но один договор
соответствует одному заказчику. Связь между объектами обеспечивается с помощью
реквизита Код заказчика.
Товарно-транспортные накладные - Спецификация
ТТН (Товарно-транспортные накладные - главный ИО, Спецификация ТТН -
подчиненный ИО). Тип связи 1:М, так как по одной накладной могут отгружаться
несколько видов изделий, но одно изделие соответствует одной накладной. Связь
между объектами обеспечивается с помощью реквизита Номер ТТН.
Товарно-транспортные накладные - Платежные
поручения (Товарно-транспортные накладные - главный ИО, Платежные поручения -
подчиненный ИО). Тип связи 1:М, так как одна накладная может оплачиваться
несколькими платежными поручениями, но одно платежное поручение соответствует
одной накладной. Связь между этими объектами обеспечивается с помощью реквизита
Номер ТТН.
После того, как установлены связи между
сущностями, возможно построение информационно-логической модели.
Информационно-логическая модель - это модель
данных, отображающая предметную область в виде совокупности информационных
объектов и структурных связей между ними.
Правила построения ИЛМ связаны с упорядочением
ИО по уровням иерархии. Такой способ изображения по уровням называют
канонической формой ИЛМ. Рассмотрим формальный способ установление уровней
иерархии. Этот способ особенно необходим в данной задаче, так как количество ИО
велико.
Способ основан на использовании матрицы
смежности - квадратной матрицы (количество строк и столбцов равно числу ИО).
Составим исходную матрицу смежности для задачи:
|
изделия
|
справочник
|
склады
|
заказчики
|
договор
|
СДОГ
|
ТТН
|
СТТН
|
ПП
|
СПП
|
изделия
|
|
|
|
|
|
1
|
|
1
|
|
1
|
справочник
|
1
|
|
|
|
|
|
|
|
|
|
склады
|
1
|
|
|
|
|
|
|
|
|
|
заказчики
|
|
|
|
|
1
|
|
|
|
|
|
договор
|
|
|
|
|
|
1
|
1
|
|
|
|
СДОГ
|
|
|
|
|
|
|
|
|
|
|
ТТН
|
|
|
|
|
|
|
|
1
|
1
|
|
СТТН
|
|
|
|
|
|
|
|
|
|
|
ПП
|
|
|
|
|
|
|
|
|
|
1
|
СПП
|
|
|
|
|
|
|
|
|
|
|
Сумма
по столбцу
|
2
|
0
|
0
|
0
|
1
|
2
|
1
|
2
|
1
|
2
|
Значение «1» в матрице смежности записывается в
том случае, если между ИО в строке и ИО в столбце имеется связь один-ко-многим.
Мы используем установленные ранее связи.
Нулевые суммы получились по столбцам Справочник,
Склады и Заказчики. Если сумма по столбцу равна нулю, то столбец и строка с
таким же именем вычеркиваются (выделяются серым цветом), а оставшиеся строки и
столбцы образуют новую матрицу смежности. Вычеркнутые ИО выносятся на нулевой
уровень иерархии. В данной задаче нулевые суммы получились в столбцах
Справочник, Склады и заказчики. Следовательно, они определяют нулевой уровень.
После этого получится следующая матрица:
|
изделия
|
договор
|
СДОГ
|
ТТН
|
СТТН
|
ПП
|
СПП
|
изделия
|
|
|
1
|
|
1
|
|
1
|
договор
|
|
|
1
|
1
|
|
|
|
СДОГ
|
|
|
|
|
|
|
|
ТТН
|
|
|
|
|
1
|
1
|
|
СТТН
|
|
|
|
|
|
|
|
ПП
|
|
|
|
|
|
|
1
|
СПП
|
|
|
|
|
|
|
|
Сумма
столбца
|
0
|
0
|
2
|
1
|
2
|
1
|
2
|
Во второй матрице смежности нулевые суммы
получились в столбцах Изделия и Договоры. Следовательно, эти столбцы в ней
вычеркиваются, а Изделия и Договоры определяют первый уровень.
|
СДОГ
|
ТТН
|
СТТН
|
ПП
|
СПП
|
СДОГ
|
|
|
|
|
|
ТТН
|
|
|
1
|
1
|
|
СТТН
|
|
|
|
|
|
ПП
|
|
|
|
|
1
|
СПП
|
|
|
|
|
|
Сумма
по столбцу
|
0
|
0
|
1
|
1
|
1
|
В третьей матрице смежности нулевые суммы
получились в столбцах Спецификация договоров и Товарно-транспортные накладные.
Следовательно, эти столбцы в ней вычеркиваются, а Спецификация договоров и
Товарно-транспортные накладные определяют второй уровень.
|
СТТН
|
ПП
|
СПП
|
СТТН
|
|
|
|
ПП
|
|
|
1
|
СПП
|
|
|
|
Сумма
по столбцу
|
0
|
0
|
1
|
В четвертой матрице смежности нулевые суммы
получились в столбцах Спецификация Товарно-транспортных накладных и Платежные
поручения. Следовательно, эти столбцы вычеркиваются, а Спецификация
Товарно-транспортных накладных и Платежные поручения определяют третий уровень.
|
СПП
|
СПП
|
|
Сумма
по столбцу
|
0
|
Спецификация платежей располагается на четвертом
(последнем) уровне.
На рисунке показана каноническая
информационно-логическая модель (ИЛМ).
3.3 Определение логической структуры
базы данных
Логическая структура РБД определяется
совокупностью логически связанных реляционных таблиц. Логические связи
соответствуют структурным связям между объектами в инфологической модели,
каждый ИО в логической структуре отображается соответствующей реляционной
таблице.
Связи между таблицами осуществляются посредством
общих реквизитов (ключевых или неключевых). Логическая структура РБД имеет
следующий вид:
Рис. 5
3.4 Разработка физической структуры
базы данных
Физическое моделирование БД - это способ
размещения информации на машинных печатных носителях. Правила перехода от
логической реляционной структуры к физической заключается в следующем:
Каждая реляционная таблица превращается в
таблицу
Каждый столбец таблицы - в поле таблицы
Каждая строка таблицы - в запись таблицы
В процессе физического проектирования РБД
необходимо:
Присвоить имена таблицам
Присвоить имена полям таблиц
Соответствие документов и таблиц БД:
Имя
документа
|
Имя
таблицы БД
|
Список
изделий
|
Изделия
|
Список
заказчиков
|
Заказчик
|
Справочник
единиц измерения
|
Справочник
единиц измерения
|
Список
складов
|
Склады
|
Список
договоров
|
Договор
|
|
Спец-я
договоров
|
Товарно-транспортные
накладные
|
ТТН
|
|
Спец-я
ТТН
|
Платежные
поручения
|
ПП
|
|
Спец-я
ПП
|
3.5 Контрольный пример
Заполнить таблицы исходными данными контрольного
примера.
Контрольный пример необходим для проверки
правильности решения задачи на персональном компьютере.
Для данной задачи таблицы выглядят так:
Изделия
|
код
изделия
|
наименование
изделия
|
код
единицы
|
цена
|
номер
склада
|
КОД_ИЗД
|
НАИМ_ИЗД
|
КОД_ЕД_
ИЗМ
|
ЦЕНА
|
№_СКЛАДА
|
01
|
бумага
|
03
|
100
|
101
|
02
|
степлер
|
02
|
30
|
103
|
03
|
скрепки
|
01
|
15
|
103
|
04
|
ручки
|
02
|
5
|
102
|
05
|
кнопки
|
01
|
10
|
103
|
|
Заказчики
|
|
код
заказчика
|
наименование
заказчика
|
Адрес
|
|
КОД_ЗАК
|
НАИМ_ЗАК
|
АДРЕС
|
|
001
|
Букварь
|
пр.
Большевиков, д.11
|
|
002
|
Школьник
|
пр.
Испытателей, д.104 к.2
|
|
003
|
Буквоед
|
ул.
Ефимова, д. 56
|
Справочник
единиц измерения
|
код
единицы измерения
|
наименование
единицы измерения
|
КОД_ЕД_ИЗМ
|
НАИМ_ЕД_ИЗМ
|
01
|
коробка
|
02
|
штука
|
03
|
пачка
|
Спецификация
ТТН
|
Номер
ТТН
|
Код
изделия
|
Количество
|
№_ТТН
|
КОД_ИЗД
|
КОЛ_ВО
|
Т1
|
03
|
50
|
|
05
|
30
|
Т2
|
01
|
10
|
|
02
|
20
|
|
04
|
150
|
Т3
|
01
|
15
|
|
02
|
15
|
Т4
|
04
|
100
|
Т5
|
02
|
25
|
Т6
|
01
|
5
|
|
04
|
200
|
Т7
|
03
|
45
|
|
05
|
70
|
Спецификация
договора
|
|
Номер
договора
|
Месяц
отгрузки
|
Код
изделия
|
Количество
|
|
№_ДОГ
|
МЕСЯЦ_ОТГР
|
КОД_ИЗД
|
КОЛ_ВО
|
|
Д100
|
04
|
04
|
100
|
|
Д101
|
03
|
03
|
50
|
|
|
|
05
|
30
|
|
Д102
|
03
|
01
|
5
|
|
|
|
04
|
200
|
|
Д103
|
04
|
01
|
10
|
|
|
|
02
|
20
|
|
|
|
04
|
150
|
|
Д104
|
05
|
01
|
15
|
|
|
|
02
|
15
|
|
Д105
|
04
|
02
|
25
|
|
Д106
|
03
|
03
|
45
|
|
|
|
05
|
70
|
|
|
|
|
|
|
|
|
|
|
|
ТТН
|
|
Номер
ТТН
|
Дата
отгрузки
|
Номер
договора
|
|
№_ТТН
|
ДАТА_ОТГР
|
№_ДОГ
|
|
Т1
|
26.03.04
|
Д101
|
|
Т2
|
17.04.04
|
Д103
|
|
Т3
|
02.05.04
|
Д104
|
|
Т4
|
20.04.04
|
Д100
|
|
Т5
|
01.04.04
|
Д105
|
|
Т6
|
13.05.04
|
Д102
|
|
Т7
|
10.03.04
|
Д106
|
|
Спецификация
ПП
|
|
Номер
ТТН
|
Номер
ПП
|
Код
изделия
|
Количество
|
|
№_ТТН
|
№_ПП
|
КОД_ИЗД
|
КОЛ_ВО
|
|
Т1
|
П-01
|
03
|
50
|
|
|
П-02
|
05
|
25
|
|
Т2
|
П-03
|
01
|
5
|
|
|
П-04
|
02
|
10
|
|
|
П-05
|
04
|
110
|
|
Т3
|
П-06
|
01
|
10
|
|
|
|
02
|
5
|
|
Т4
|
П-07
|
04
|
20
|
|
|
П-08
|
04
|
50
|
|
Т5
|
П-09
|
02
|
10
|
|
|
П-10
|
02
|
10
|
|
Т6
|
П-11
|
01
|
5
|
|
|
П-12
|
04
|
50
|
|
|
П-13
|
04
|
50
|
|
Т7
|
П-14
|
03
|
45
|
|
|
|
05
|
70
|
|
ПП
|
Номер
ТТН
|
Номер
ПП
|
Дата
оплаты
|
№_ТТН
|
№_ПП
|
ДАТА_ОПЛ
|
Т1
|
П-01
|
26.03.04
|
|
П-02
|
31.03.04
|
Т2
|
П-03
|
26.04.04
|
|
П-04
|
27.04.04
|
|
П-05
|
25.04.04
|
Т3
|
П-06
|
04.05.04
|
Т4
|
П-07
|
21.04.04
|
|
П-08
|
23.04.04
|
Т5
|
П-09
|
02.04.04
|
|
П-10
|
24.04.04
|
Т6
|
П-11
|
13.05.04
|
|
П-12
|
20.05.04
|
|
П-13
|
25.05.04
|
Т7
|
П-14
|
21.03.04
|
|
|
|
|
|
|
|
|
По проведенным исходным данным выполним вручную
решение поставленной задачи:
Рис. 6
Отберем товарно-транспортные накладные и платежи
на заданный месяц (за четвертый месяц). По товарно-транспортным накладным
вычислим общую сумму плановой отгрузки изделий для каждого предприятия. По
платежным поручениям вычисляем общие суммы оплаты отгрузки изделий для каждого
заказчика. Найдем долг каждого заказчика.
4. Создание базы данных
4.1 Структура таблиц
Создание таблиц БД возможно несколькими
способами:
Создание структуры таблиц в режиме конструктора,
Создание таблицы путем ввода данных,
Создание таблицы с помощью мастера таблиц.
В окне Курсовик: База данных на панели объектов
выбрать Таблицы. Нажать кнопку. Создать на панели инструментов и выбрать в окне
Новая таблица строку Конструктор (можно воспользоваться ярлыком Создание
таблицы в режиме конструктора).
Описание структуры таблиц базы данных Курсовик
представлено в следующей таблице:
Имя
таблицы
|
Имя
поля
|
Ключ
|
Тип
данных
|
Размер,
формат поля
|
Изделия
|
КОД_ИЗД
|
Да
|
Текстовый
|
2
|
|
НАИМ_ИЗД
|
-
|
Текстовый
|
10
|
|
КОД_ЕД_ИЗМ
|
-
|
Текстовый
|
|
ЦЕНА
|
-
|
Денежный
|
|
|
№_СКЛАДА
|
-
|
Текстовый
|
7
|
Склады
|
№_СКЛАДА
|
Да
|
Текстовый
|
3
|
|
НАИМ_СКЛАДА
|
-
|
Текстовый
|
10
|
Справочник
единиц измерения
|
КОД_ЕД_ИЗМ
|
Да
|
Текстовый
|
3
|
|
НАИМ_ЕД_ИЗМ
|
-
|
Текстовый
|
10
|
Заказчик
|
КОД_ЗАК
|
Да
|
Текстовый
|
5
|
|
НАИМ_ЗАК
|
-
|
Текстовый
|
20
|
|
АДРЕС
|
-
|
Текстовый
|
50
|
Договор
|
№_ДОГ
|
Да
|
Текстовый
|
5
|
|
КОД_ЗАК
|
-
|
Текстовый
|
5
|
Спец-я
договоров
|
№_ДОГ
|
Да
|
Текстовый
|
5
|
|
МЕС_ОТГ
|
-
|
Текстовый
|
2
|
|
КОД_ИЗД
|
Да
|
Текстовый
|
2
|
|
КОЛ
|
-
|
Числовой
|
|
ПП
|
№_ТТН
|
Да
|
Текстовый
|
3
|
|
№_ПП
|
Да
|
Текстовый
|
4
|
|
ДАТА_ОПЛАТЫ
|
-
|
Дата/время
|
Краткий
формат
|
Спец-я
ПП
|
№_ТТН
|
Да
|
Текстовый
|
3
|
|
№_ПП
|
Да
|
Текстовый
|
4
|
|
КОД_ИЗД
|
Да
|
Текстовый
|
2
|
|
КОЛ
|
-
|
Числовой
|
|
ТТН
|
№_ТТН
|
Да
|
Текстовый
|
3
|
|
ДАТА_ОТГ
|
-
|
Дата/время
|
Краткий
формат
|
|
№_ДОГ
|
-
|
Текстовый
|
5
|
Спец-я
ТТН
|
№_ТТН
|
Да
|
Текстовый
|
3
|
|
КОД_ИЗД
|
Да
|
Текстовый
|
2
|
|
КОЛ
|
-
|
Числовой
|
|
В окне ИЗДЕЛИЯ: таблица создать структуру
таблицы ИЗДЕЛИЯ, согласно приведенному описанию:
Рис. 7
При создании структуры таблиц в верхней части
окна задаются имена полей, тип данных, отмечаются ключевые поля. В нижней части
окна в области под названием Свойства поля во вкладке Общие задаются свойства
активного окна. В столбце Имя поля указываются имена полей таблицы, а в столбце
Тип данных - тип поля (выбирается из раскрывшегося списка).
Для данной работы необходимы следующие типы
данных: текстовые, числовые, денежные, дата/время.
Текстовый тип данных применяется для тех полей,
которые не участвуют в расчетах; это будут почти все поля таблиц данной
курсовой работы - КОД_ИЗД, НАИМ_ИЗД, КОД_ЕД_ИЗМ, №_СКЛАДА, НАИМ_СКЛАДА,
НАИМ_ЕД_ИЗМ, КОД_ЗАК, НАИМ_ЗАК, АДРЕС, №_ДОГ, МЕС_ОТГ, №_ТТН, №_ПП.
Числовой тип задают числовым данным: КОЛ.
Денежный тип - денежным данным, в данном случае
- ЦЕНА.
Тип дата/время - используется для формирования
дат - ДАТА_ОПЛАТЫ, ДАТА_ОТГ.
Размер поля устанавливается для каждого типа
данных и определяется максимальным значением этого поля в документе. Для
текстового по умолчанию устанавливается автоматически равным 50 байт, для
числового поля размер выбирается из списка: Байт, Целое (2 байта), С плавающей
точкой (4 байта).
Число десятичных знаков - это число цифр после
запятой, устанавливается выбором из раскрывающегося списка.
Подпись выноситься в заголовки полей объектов,
по умолчанию в подпись выноситься имя поля.
Условие на значение определяет требования к
вводимым данным. Например, >0, это условие не позволит ввести число <=0.
Во время ввода данных осуществляется контроль.
Обязательное поле - ключевое поле всегда
обязательное, если указывается в этом поле Да, то пустые значения не
допускаются.
Индексированное поле - индексы позволяют
ускорить поиск записей в больших таблицах, по номеру записи осуществляется
прямой доступ к искомой записи в таблице. Для свойства Индексированное поле при
наличии простого ключа устанавливается значение Да (Совпадения не допускаются).
Пример - КОД_ЗАК и №_ДОГ в таблицах Заказчик и
Договор. Для составных ключей из списка выбирается Да (Допускаются совпадения).
Пример - таблицы Спец-я ДОГ, Спец-я ТТН.
Для определения ключевого поля надо сделать поле
активным и нажать на панели инструментов кнопку Ключевое поле. Слева от имени
ключевого поля появиться символ Ключ. Можно при нажатой кнопке Ctrl выделить
несколько полей. Для сохранения таблицы закрыть ее, а затем ввести имя.
С учетом вышеперечисленных правил, так же как и
таблица ИЗДЕЛИЯ, создаются все остальные таблицы.
4.2 Схема данных
Схема данных в Access строится на основе
логической модели, разработанной при проектировании базы данных. В ней
определяются и запоминаются связи между таблицами. Эти связи используются при
создании форм, запросов, отчетов, а также обеспечивают целостность
взаимосвязанных данных при корректировке таблиц.
Для создания схемы данных нажать кнопку Схема
данных на панели инструментов или выполнить команду Сервис/Схема данных. Затем
в окне
Добавление таблицы открыть на панели объектов Таблицы, выделить ИЗДЕЛИЯ, нажать
кнопку Добавить; выделить и добавить таблицы СПРАВОЧНИК ЕДИНИЦ ИЗМЕРЕНИЯ,
СКЛАДЫ, ЗАКАЗЧИК, ДОГОВОР, СПЕЦ-Я ДОГОВОРОВ, ТТН, СПЕЦ-Я ТТН, ПП, СПЕЦ-Я ПП.
Закрыть окно Добавление таблицы. На экране появятся все выбранные таблицы со
списками полей. Таблицы можно перемещать с помощью левой кнопки мыши. В главной
таблице выбрать поле, по которому устанавливается связь. Затем при нажатой
кнопке мыши соединить это поле с соответствующим полем подчиненной таблицы.
При установлении связи между таблицами ИЗДЕЛИЯ и
СПРАВОЧНИК ЕДИНИЦ ИЗМЕРЕНИЯ связь осуществляется по полю КОД_ЕД_ИЗМ. После того
как намечена очередная связь между таблицами, появляется окно Изменение связей,
в котором должен быть определен тип отношения один к многим.
база данная кнопочный форма
Рис. 8
Затем необходимо обеспечить целостность данных.
Для того, чтобы обеспечить работу с таблицами необходимо преодолеть ограничения
на удаление, изменение или добавление связанных записей, сохраняя при этом
целостность данных. Для этого следует включить режимы каскадного обновления и
каскадного удаления.
При установке флажка Каскадное обновление
связанных полей изменение значения в ключевом поле главной таблицы приводит к
автоматическому обновлению соответствующих значений во всех связанных записях.
Например, при изменении значения кода изделия в таблице ИЗДЕЛИЯ будут изменены
значения этого кода изделия в таблицах СПЕЦ-Я ДОГОВОРОВ, СПЕЦ-Я ПП, СПЕЦ-Я ТТН.
При установке флажка Каскадное удаление
связанных записей удаление записи в главной таблице приведет к автоматическому
удалению связанных записей в подчиненной таблице.
Устанавливаем связи между таблицами ИЗДЕЛИЕ -
СПРАВОЧНИК ЕДИНИЦ ИЗМЕРЕНИЯ, ИЗДЕЛИЕ - СПЕЦ-Я ДОГОВОРА, ИЗДЕЛИЕ - СПЕЦ-Я ПП,
ИЗДЕЛИЯ - СКЛАДЫ, ЗАКАЗЧИК - ДОГОВОР, ДОГОВОР - СПЕЦ-Я ДОГОВОРА, ДОГОВОР - ТТН,
ТТН - СПЕЦ-Я ТТН, ТТН - ПП, ПП - СПЕЦ-Я ПП, устанавливаем флажки Обеспечение
целостности данных, Каскадное обновление связанных полей и Каскадное удаление
связанных записей. Для всех связей должен быть установлен тип отношения один к
многим.
Между таблицами ПЛАТЕЖИ И СПЕЙ-Я ПЛАТЕЖЕЙ связь
строится по составному ключу №_ТТН + №_ПП. Для выделения составного ключа нужно
нажать клавишу Ctrl и, не отпуская ее, отметить кнопкой мыши поля №_ТТН и №_ПП
таблицы ПЛАТЕЖИ. Перетащить выделенные поля на соответствующие поля таблицы
СПЕЦ_Я ПЛАТЕЖЕЙ.
После того, как все связи установлены, схема
данных имеет вид:
Рис. 9
4.3 Пользовательские формы
Однотабличные формы
Рассмотрим пример создания однотабличной формы.
Последовательность действий:
В окне Курсовик: база данных выбрать на панели
объектов тип объектов Формы, нажать кнопку Создать формы с помощью мастера.
В открывшемся окне Создание форм выбрать из
списка таблицу ИЗДЕЛИЯ.
В Доступные поля выбрать КОД_ИЗД, НАИМ_ИЗД,
КОД_ЕД_ИЗМ, ЦЕНА, №_СКЛАДА, нажав кнопку >> . Эти поля будут перемещены в
окно Выбранные поля. Нажать кнопку Далее.
В следующем окне Создание форм выбрать из списка
любой внешний вид формы. Нажать кнопку Далее.
Выбрать из списка любой стиль. Нажать кнопку
Далее >.
В следующем окне можно задать имя для формы. По
умолчанию имя формы совпадает с именем таблицы ИЗДЕЛИЯ, но можно ввести другое
имя. Ниже, предлагается выбрать Дальнейшие действия: открытие формы для
просмотра и ввода данных или изменение макета формы. Для завершения создания
формы нажать кнопку Готово.
Закрыть форму. В списке форм окна Курсовик: база
данных появится Список изделий.
Рис. 10
Далее необходимо аналогично создать
однотабличные формы Список Заказчиков, Список складов, Справочник единиц
измерения. Заполним данные формы данными из таблиц:
Изделия
|
код
изделия
|
наименование
изделия
|
код
единицы
|
цена
|
номер
склада
|
КОД_ИЗД
|
НАИМ_ИЗД
|
КОД_ЕД_
ИЗМ
|
ЦЕНА
|
№_СКЛАДА
|
01
|
бумага
|
03
|
100
|
101
|
02
|
степлер
|
02
|
30
|
103
|
03
|
скрепки
|
01
|
15
|
103
|
04
|
ручки
|
02
|
5
|
102
|
05
|
кнопки
|
01
|
10
|
103
|
Склады
|
|
номер
склада
|
наименование
склада
|
|
№_склада
|
НАИМ_СКЛАДА
|
|
101
|
Чайка
|
|
102
|
Иволга
|
|
103
|
Дятел
|
|
Заказчики
|
|
код
заказчика
|
наименование
заказчика
|
Адрес
|
|
КОД_ЗАК
|
НАИМ_ЗАК
|
АДРЕС
|
|
001
|
Букварь
|
пр.
Большевиков, д.11
|
|
002
|
Школьник
|
пр.
Испытателей, д.104 к.2
|
|
003
|
Буквоед
|
ул.
Ефимова, д. 56
|
|
Справочник
единиц измерения
|
код
единицы измерения
|
наименование
единицы измерения
|
КОД_ЕД_ИЗМ
|
НАИМ_ЕД_ИЗМ
|
01
|
коробка
|
02
|
штука
|
03
|
пачка
|
|
|
|
|
|
|
При заполнении форм данными необходимо
придерживаться определенных правил последовательности их заполнения в
соответствии со схемой данных:
Независимо могут заполняться те формы (таблицы),
которые не подчинены каким-либо другим таблицам в одно-многозначных связях.
Сначала заполняются справочные данные, а затем
учетные.
Многотабличная форма
На основе связанных таблиц следует создать
составную форму, для этого требуется выполнить следующую последовательность
действий:
Выбрать на панели объектов тип Формы, нажать
кнопку Создать формы с помощью мастера.
В окне Создание форм выбрать из списка таблицу
ДОГОВОР, а из нее поля №_ДОГ, КОД_ЗАК, затем выбрать таблицу СПЕЦ-Я ДОГОВОРОВ и
перенести поля МЕС_ОТГ, КОД_ИЗД, КОЛ. Нажать кнопку Далее >. В следующем
окне Создание форм проверить правильность размещения выбранных полей, установку
переключателя в положение Подчиненные формы, нажать кнопку Далее >.
Выбрать вид подчиненной формы (поставить
флажок). Нажать кнопку Далее > и в следующем окне выбрать стиль. Перейти к
следующему окну.
В последнем окне Создание форм предлагается
задать форме имя ДОГОВОР. Проверить наличие флажка Открытие формы для просмотра
и ввода данных. Нажать Готово.
Появилась составная форма ДОГОВОР, в которой
отражены объединенные данные из таблиц ДОГОВОР и СПЕЦ-Я ДОГ.
Рис. 11
Корректировать формы можно с помощью
Конструктора форм.
.4 Ввод данных
Для ввода данных в таблицы используются формы.
После ввода данных через формы будут заполнены и
таблицы:
Изделия
Договоры
Спец-я договоров
Заказчики
Склады
Справочник единиц измерения
Платежное поручение
Спец-я Платежных поручений
Товарно-транспортные накладные
Спец-я товарно-транспортных накладных
Исходные данные можно ввести непосредственно в
таблицы.
5. Алгоритм решения задачи
Перед решением нашей задачи составим подробное
описание последовательности действий (алгоритм) для получения выходных
документов.
Алгоритм можно представить в виде словесного
описания или блок-схемы. Составим алгоритм в виде блок-схемы, которая выглядит
так:
Рис. 12
6. Создание запросов
Для обработки данных в СУБД используются
запросы. Запрос можно построить на основе одной или нескольких таблиц и
запросов.
Для конечного запроса требуется создать несколько
запросов в соответствии с блок-схемой алгоритма решения задачи.
В окне Курсовик: база данных на панели объектов
выбрать Запросы, нажать кнопку Создание запроса в режиме конструктора.
Шаг 1.
Рассчитать суммарные планы выплат заказчиков по
товарно-транспортным накладным выбрать суммы оплаты на заданный месяц.
В окне Курсовик: База данных на панели объектов
выбрать Запросы, нажать кнопку Создание запросы в режиме конструктора. В
появившемся окне Добавление таблицы выбираем необходимые нам таблицы Изделия,
Заказчик, Договоры, ТТН, Спец-я ТТН. Закрываем окно Добавление таблицы. В
верхней части окна запроса отображены списки полей выбранных таблиц, а в нижней
находится область для формирования запроса (бланк запроса). Так как запрос
создается на основе таблиц, в окне запроса отображаются связи, установленные в
схеме данных.
Двойным щелчком по любому полю таблицы его можно
поместить в бланк запроса. Помещаем в бланк запроса поле НАИМ_ЗАК. Все данные
группируются по этому полю, поэтому в строке Групповая операция должно быть
установлено значение Группировка (команда Вид \ Групповые операции). Далее
выполняем расчет суммы оплаты заказчиков по товарно-транспортным накладным.
Чтобы выполнить вычисление, надо установить
курсор в строку Поле и нажать кнопку Построить на панели инструментов.
Откроется окно Построителя выражений.
Выражение для вычисления формируется в верхней
части окна. Перед выражением задать имя нового поля Сумма Оплаты:. Далее в
нижней части окна слева выбираем объект, входящий в выражение, то есть папку
Таблицы. Из списка выбираем таблицу Спец-я ТТН, ищем нужное поле КОЛ, вставляем
его в выражение. Затем ставим знак умножения и по принципу, описанному выше,
вставляем второй множитель. Мы получаем:
Рис. 13
Затем надо выбрать оплату за заданный месяц. Для
этого устанавливаем курсор в поле месяца и вызываем Построитель выражений.
Выбрать в папке Функции/Встроенные функции категорию Дата/время, а затем
функцию Month. Нажать кнопку Вставить. Выделить значение «number». Выбрать в
папке Таблицы таблицу ТТН, в окне полей таблицы - поле ДАТА_ОТГР и нажать
кнопку Вставить. Получится выражение Month:([ТТН]![ДАТА_ОТГР]).
Рис. 14
Нажать кнопку OK. Теперь заполняем строку
Условие отбора для поля Месяц. Введем параметр [Введите месяц:] (Используем
правило, что текст параметра не должен совпадать с именем поля).
Теперь щелкаем по значку вывода на экран (V)
(убрать значок), так как в выводе на экран поля месяца мы не нуждаемся.
В итоге наш запрос должен принять вид:
Рис. 15
После заполнения бланка выполняем запрос с
помощью кнопки! (Запуск) на панели инструментов или команды Запрос/Запуск.
Шаг 2.
По такому же принципу создаем запрос на основе
таблиц Изделия, Договор, Заказчики, ТТН, ПП, Спец-я ПП.
После необходимых преобразований наш запрос в
режиме конструктора выглядит следующим образом:
Рис. 16
Шаг 3.
Создаем запрос Долг на основе созданных ранее
запросов. Бланк запроса имеет вид:
Рис. 17
7. Создание отчетов
7.1 Получение отчета с помощью
мастера отчетов
Access позволяет создать макет отчета
определенной структуры. В создании отчета много общего с созданием формы. Но,
через отчеты нельзя вводить, удалять, добавлять и редактировать данные в
таблицах. В отчет могут быть включены данные одной таблицы, одного запроса или
нескольких таблиц и запросов. Макет отчета определяет состав и расположение:
Заголовка отчета,
Заголовков полей отчета,
Значений полей, входящих в отчет,
Значений вычисляемых реквизитов.
При конструировании макета отчета имеется
возможность группировать данные по нескольким уровням. Для каждого уровня могут
вычисляться итоги с поясняющим текстом. Отчет может быть создан с помощью Мастера
отчетов или в режиме Конструктора отчетов. Проще создать отчет с помощью
Мастера отчетов, а затем доработать его в режиме Конструктора отчетов.
На основе запроса Долг создадим отчет, для этого
необходимо:
В окне Курсовик: база данных выбрать на панели объект
Отчеты, щелкнуть по ярлыку Создание отчета с помощью мастера.
В диалоговом окне Создание отчетов в окне
Таблицы и запросы в качестве источника выбрать из списка запрос Долг. В окне
Доступные поля выбрать все поля для включения в отчет (кнопка >>). Для
выбора отдельных полей служит кнопка >. Нажать кнопку Далее > .
В следующих диалоговых окнах не добавлять уровни
группировки и не задавать порядок сортировки (по умолчанию принят порядок
сортировки По возрастанию). Нажать кнопку Далее > .
Установить переключатель для вида макета отчета
- таблица и ориентацию книжная. Установить флажок на Настроить ширину полей для
размещения на одной странице. Нажать кнопку Далее>.
Из предлагаемого списка выбрать стиль заголовка.
Нажать кнопку Далее>.
В следующем окне задается имя отчета. Готово .
Сумма задолженностей заказчиков на 4 месяц будет
выглядеть следующим образом:
Рис. 18
Этот отчет имеет некоторые недостатки. Его можно
откорректировать с помощью конструктора отчетов.
7.2 Корректировка макета отчета с
помощью Конструктора отчетов
Чтобы войти в конструктор отчетов следует нажать
кнопку Вид на панели инструментов. В режиме Конструктор после некоторых
преобразований отчет Долг будет выглядеть:
Рис. 19
В результате отчет по задолженностям заказчиков
за 4 месяц примет вид:
Рис. 20
7.3 Вывод отчета на печать
Вывод отчета на печать можно выполнить с помощью
кнопки Печать на панели инструментов или команды Файл/Печать.
Создание кнопочной формы с помощью диспетчера
кнопочных форм.
Для управления в диалоговом режиме объектами
базы данных Access формы, отчеты можно использовать кнопочные формы. Кнопочная
форма (КФ) - это панель управления, которая обеспечивает переход к страницам
кнопочной формы, а также выполнение отдельных команд. На панели кнопочной формы
должны быть размещены кнопки для возвращения к главной странице кнопочной формы
и страницам предыдущих уровней и выхода из приложения (базы данных). При
создании КФ предусматривается кнопка для изменения самой КФ.
Все страницы КФ представлены двумя уровнями.
уровень - главная страница кнопочной формы
Курсовик.
уровень - страницы Добавление данных в формы,
Редактирование данных, Открытие отчетов.
Порядок создания кнопочной формы с помощью
Диспетчера кнопочных форм (ДКФ):
Открыть базу данных Курсовик и выбрать в меню
Сервис/ Служебные программы/ Диспетчер кнопочных форм
Подтвердить создание кнопочной формы - Да.
Рис. 21
8. Создание списка страниц кнопочной
формы
В окне ДКФ всегда существует главная страница
кнопочной формы - Main Switchboard.
С помощью кнопки Создать сформировать
последовательно список страниц кнопочной формы:
Редактирование данных,
Добавление данных в формы,
Открытие отчетов.
Рис. 22
Содержание главной страницы кнопочной формы
(первый уровень)
Для создания содержания главной страницы
кнопочной формы необходимо в окне ДКФ выделить ее в списке и нажать кнопку
Изменить. В окне Изменение страницы кнопочной формы создать ее элементы с
помощью кнопки Создать. Для создания элемента ДОБАВЛЕНИЕ ДАННЫХ нажать кнопку
Создать и в окне Изменение элемента кнопочной формы получить
Рис. 23
Нажать ОК.
По аналогии создать элементы РЕДАКТИРОВАНИЕ
ДАННЫХ (перейти к кнопочной форме Редактирование данных) и ПРОСМОТР ОТЧЕТОВ
(перейти к кнопочной форме Открытие отчетов).
При создании элемента ИЗМЕНЕНИЕ КНОПОЧНОЙ ФОРМЫ
выбрать команду Конструктор приложения. При создании элемента ВЫХОД выбрать
команду Выйти из приложения.
Рис. 24
Нажать ОК.
В результате в окне Изменение страницы кнопочной
формы созданы все элементы для главной страницы кнопочной формы Main
Switchboard.
Рис. 25
Нажать ОК.
Закрыть все окна, кроме ДКФ.
Создание содержания кнопочной формы второго
уровня
Для создания содержания страницы Редактирование
данных (второй уровень) выделить ее и нажать кнопку Изменить.
В окне Изменение страницы кнопочной формы
создать элемент для данной кнопочной формы с помощью кнопки Создать.
Сформировать в окне Изменение элементов кнопочной формы элемент для формы
ИЗДЕЛИЯ.
Рис. 26
По аналогии создаются элементы ФОРМА ЗАКАЗЧИКИ и
ФОРМА ЕДИНИЦЫ ИЗМЕРЕНИЯ. Для создания элемента ВОЗВРАТ:
Рис. 27
Нажать ОК.
В окне Изменение страницы кнопочной формы
отображены все созданные элементы страницы кнпочной формы Редактирование форм:
Рис. 28
Для создания содержания страницы кнопочной формы
(второй уровень) выделить ее в окне ДКФ и создать все элементы, используя
команду Открыть форму для добавления.
Рис. 29
Для создания содержания страницы Открытие
отчетов необходимо получить:
Рис. 30
Аналогично ВОЗВРАТ и в результате:
Рис. 31
С помощью кнопки Закрыть выйти из Диспетчера
кнопочных форм.
В окне БД перейти к объектам Формы. В списке
добавилось название новой формы - Main Switchboard. В списке Таблиц добавилась
новая таблица - Switchboard Item, в которой отображена структура созданной
кнопочной формы. Теперь для изменения, добавления новых записей, изменения
самой КФ служат функциональные кнопки. Например, чтобы изменить название КФ
следует нажать кнопку ИЗМЕНЕНИЕ КНОПОЧНОЙ ФОРМЫ, в появившемся окне ДКФ
выделить Main Switchboard, нажать кнопку Изменить и сделать заданное изменение
в окне Название кнопочной формы.
Так же как и другие объекты БД, кнопочную форму
можно редактировать в режиме Конструктор, изменять цвета заливки и фона,
вставлять рисунки.
Рис. 32