Методические указания к курсовому проектированию по курсу базы данных для студентов дневной и заочной форм обучения специальностей
Вид материала | Методические указания |
- Методические указания к курсовому проектированию по курсу "Базы данных" Москва, 654.27kb.
- М. А. Бонч-Бруевича Методические указания к курсовому проектированию предварительных, 789.79kb.
- Методические указания по курсовому проектированию по дисциплине «страхование» для студентов, 1442.66kb.
- Методические указания по выполнению рефератов и контрольных работ по курсу «экология», 187.76kb.
- Механизированными видами сварки, 729.33kb.
- Название, 75.63kb.
- Методические указания для самостоятельной (внеаудиторной) работы студентов специальности, 1476.45kb.
- И. И. Ползунова Бийский технологический институт О. В. Титова Реализация стратегического, 218.14kb.
- Методические указания к курсовому проектированию по курсу "Базы данных" Составитель:, 602.97kb.
- Методические указания по выполнению курсовых работ для студентов дневной и заочной, 75.21kb.
3 Разработка интерфейса пользователя
При загрузке программного приложения «Касса железнодорожных билетов» автоматически выполняется макрос «autoexec», который в свою очередь открывает главную форму «Главная» (Приложение 1).
Форма «Главная» является основным меню выбора дальнейших действий. В верхней части формы расположены две кнопки для работы по учету билетов.
При нажатии на кнопку «Билеты» выполняется макрос «КнБилеты_Главная», который закрывает форму «Главная» и открывает форму «Билеты».
При нажатии на кнопку «Сервис» выполняется макрос «КнСервис_Главная», который закрывает форму «Главная» и открывает форму «Сервис». В нижней части формы расположена группа кнопок, которые вызывают соответствующий справочник.
При нажатии на кнопку «Тип вагона» выполняется макрос «КнТип вагона_Главная», который закрывает форму «Главная» и открывает форму «Типы вагонов».
При нажатии на кнопку «Тип поезда» выполняется макрос «КнТип поезда_Главная», который закрывает форму «Главная» и открывает форму «Типы поездов».
При нажатии на кнопку «Пассажир» выполняется макрос «КнПассажир_Главная», который закрывает форму «Главная» и открывает форму «Пассажиры».
При нажатии на кнопку «Скидка» выполняется макрос «КнСкидка_Главная», который закрывает форму «Главная» и открывает форму «Скидки».
При нажатии на кнопку «Станция» выполняется макрос «КнСтанция_Главная», который закрывает форму «Главная» и открывает форму «Станции».
При нажатии на кнопку «Дата отправления» выполняется макрос «КнДата отправления_Главная», который закрывает форму «Главная» и открывает форму «Даты отправления».
При нажатии на кнопку «Номер поезда» выполняется макрос «КнНомер поезда_Главная», который закрывает форму «Главная» и открывает форму «Номера поездов». В нижнем правом углу формы расположена кнопка «Выход», при нажатии на которую выполняется макрос «КнВыход_Главная», который осуществляет выход из программного приложения.
Форма «Типы вагонов» (Приложение 2) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Типы вагонов», который закрывает форму «Типы вагонов» и открывает форму «Главная». Также на форме расположены три поля: тип вагона, количество мест, коэффициент класса. Список типов вагонов отсортирован в алфавитном порядке по полю «Тип вагона». Источником формы является таблица «Тип вагона».
В форму при желании можно добавить новый тип вагона со своими характеристиками или удалить уже существующий тип вагона, при этом удаляться все записи, которые связаны с этим типом вагона.
Форма «Типы поездов» (Приложение 3) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Типы поездов», который закрывает форму «Типы поездов» и открывает форму «Главная». Также на форме расположены два поля: тип поезда, стоимость одного километра пути. Список типов поездов отсортирован в алфавитном порядке по полю «Тип поезда». Источником формы является таблица «Вид поезда». В форму при желании можно добавить новый тип поезда со своими характеристиками или удалить уже существующий тип поезда, при этом удаляться все записи, которые связаны с этим типом поезда.
Форма «Пассажиры» (Приложение 4) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Пассажиры», который закрывает форму «Пассажиры» и открывает форму «Главная». Также на форме расположены два поля: ФИО, скидка. Список пассажиров отсортирован в алфавитном порядке по полю «ФИО». Источником формы является запрос «ЗПассажир».
SELECT Пассажир.Код, Пассажир.ФИО, Скидка.Льгота
FROM Скидка INNER JOIN Пассажир ON Скидка.Код = Пассажир.Скидка
ORDER BY Пассажир.ФИО;
Запрос позволяет отобрать из таблиц «Скидка» и «Пассажир» ФИО пассажира и процент скидки для него. В форму нельзя добавить нового пассажира со своим процентом скидки, но можно удалить уже существующего пассажира, при этом удаляться все записи билетов, которые оформлены на этого пассажира.
Форма «Скидки» (Приложение 5) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Скидки», который закрывает форму «Скидки» и открывает форму «Главная». Также на форме расположено одно поле «Скидка». Список скидок отсортирован по возрастанию процента скидки. Источником формы является таблица «Скидка». В форму при желании можно добавить новый процент скидки или удалить уже существующий процент, при этом удаляться все записи пассажиров, которые имеют этот процент скидки.
Форма «Станции» (Приложение 6) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Станции», который закрывает форму «Станции» и открывает форму «Главная». Также на форме расположены два поля: станция, расстояние до станции. Список станций отсортирован в алфавитном порядке по полю «Станция». Источником формы является таблица «Станция». В форму при желании можно добавить новую станцию со своим расстоянием или удалить уже существующую станцию, при этом удаляться все записи, которые связаны с этой станцией.
Форма «Даты отправления» (Приложение 7) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Даты отправления», который закрывает форму «Даты отправления» и открывает форму «Главная». Также на форме расположено одно поле «Дата отправления». Список дат отсортирован по убыванию даты отправления. Источником формы является таблица «Дата отправления». В форму при желании можно добавить новую дату отправления или удалить уже существующую дату, при этом удаляться все записи билетов, которые были проданы на эту дату отправления.
Форма «Номера поездов» (Приложение 8) содержит три кнопки. При нажатии на кнопку «Назад» выполняется макрос «КнНазад_Номера поездов», который закрывает формы «Номера поездов», «Маршрут» и «Состав». После этого макрос открывает форму «Главная». При нажатии на кнопку «Состав» выполняется макрос «КнСостав_Номера поездов», который открывает форму «Состав», при этом выводится в форму состав выбранного поезда. При нажатии на кнопку «Маршрут» выполняется макрос «КнМаршрут_Номера поездов», который открывает форму «Маршрут», при этом выводится в форму маршрут выбранного поезда. Также на форме расположены два поля: простое поле «Номер поезда» и поле со списком «Тип поезда». В качестве источника строк для поля со списком «Тип поезда» используется запрос «ЗВид поезда».
SELECT [Вид поезда].Код, [Вид поезда].[Вид поезда], [Вид поезда].[Стоимость км]
FROM [Вид поезда]
ORDER BY [Вид поезда].[Вид поезда];
Запрос позволяет отображать список типов поездов в алфавитном порядке. Список номеров поездов отсортирован по возрастанию номера поезда. Источником формы является таблица «Номер поезда». В форму можно добавить новый номер поезда и его тип, можно удалить из нее уже существующий номер поезда, при этом удаляться все записи билетов, которые оформлены на этот поезд. Также можно изменить тип поезда для уже существующей записи.
Форма «Состав» (Приложение 9) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Состав», который закрывает форму «Состав». Также на форме расположены три поля: номер поезда, тип вагона, количество вагонов. Поле «Тип вагона» является полем со списком. Источником строк для этого поля является запрос «ЗТип вагона».
SELECT [Тип вагона].Код, [Тип вагона].[Тип вагона], [Тип вагона].[Количество мест], [Тип вагона].[Коэффициент класса]
FROM [Тип вагона]
ORDER BY [Тип вагона].[Тип вагона];
Запрос реализует сортировку типов вагонов в алфавитном порядке. Поле «Номер поезда» недоступно для изменения пользователем. Это поле принимает значения в зависимости от выбранного номера поезда в форме «Номера поездов». Источником формы является таблица «Количество вагонов». В форму при желании можно добавить новое количество вагонов нового типа или удалить уже существующие вагоны определенного типа. Также можно изменить количество вагонов определенного типа.
Форма «Маршрут» (Приложение 10) содержит одну кнопку «Назад», при нажатии на которую выполняется макрос «КнНазад_Маршрут», который закрывает форму «Маршрут». На форме расположены простое поле «Номер поезда» и поле со списком «Станция». Источником строк для поля «Станция» является запрос «ЗСтанция».
SELECT Станция.Код, Станция.Станция, Станция.Расстояние
FROM Станция
ORDER BY Станция.Станция;
Запрос реализует сортировку станций в алфавитном порядке. Поле «Номер поезда» недоступно для изменения пользователем. Это поле принимает значения в зависимости от выбранного номера поезда в форме «Номера поездов». Источником формы является таблица «Следует через». В форму при желании можно добавить новую станцию или удалить уже существующую станцию. Также можно изменить какую-либо существующую в маршруте станцию на любую другую.
Форма «Билеты» (Приложение 11) содержит четыре кнопки. При нажатии на кнопку «Назад» выполняется макрос «КнНазад_Билеты», который закрывает форму «Билеты» и отчет «ОБилеты». После этого макрос открывает форму «Главная». При нажатии на кнопку «Подробно» выполняется макрос «КнПодробно_Билеты», который закрывает форму «Билеты» и открывает форму «Билет», при этом выводится в форму полная информация о билете, который был выбран в форме «Билеты». При нажатии на кнопку «Добавить» выполняется макрос «КнДобавить_Билеты», который закрывает форму «Билеты» и открывает форму «Билет», при этом на форме появляется чистый бланк билета для заполнения. При нажатии на кнопку «Отчет» выполняется макрос «КнОтчет_Билеты», который открывает для просмотра отчет «ОБилеты». Также на форме расположены пять полей: номер билета, пассажир, дата отправления, номер поезда, стоимость. Все поля недоступны для редактирования пользователем. Источником формы является запрос «ЗКупил билет».
SELECT [Купил билет].Номер, [Номер поезда].[Номер поезда], [Дата отправления].Дата, Пассажир.ФИО, [Купил билет].Цена
FROM Пассажир INNER JOIN ([Номер поезда] INNER JOIN ([Дата отправления] INNER JOIN [Купил билет] ON [Дата отправления].Код = [Купил билет].Дата) ON [Номер поезда].Код = [Купил билет].[Номер поезда]) ON Пассажир.Код = [Купил билет].Пассажир
ORDER BY [Купил билет].Номер;
Запрос предназначен для выборки из четырех таблиц номера билета, номера поезда, даты отправления, ФИО пассажира и цены билета. Также запрос производит сортировку по возрастанию по полю «Номер билета». Из формы можно удалить любой существующий билет.
Форма «Билет» (Приложение 12) содержит три кнопки. При нажатии на кнопку «ОК» выполняется макрос «КнОК_Билет», который закрывает форму «Новый пассажир» и отчет «ОБилет». В случае если билет сформирован правильно, макрос заносит в цену билета подсчитанную его стоимость. Если в бланк билета не было занесено никакой информации, то макрос закрывает форму «Билет», открывает форму «Билеты» и прекращает свою работу. После этого макрос открывает запрос «ЗУ1».
DELETE Т1.Мест
FROM Т1;
Этот запрос очищает таблицу «Т1». Потом открывается запрос «З1».
INSERT INTO Т1 ( Мест )
SELECT [Количество вагонов]*[Количество мест] AS Мест
FROM [Тип вагона] INNER JOIN [Количество вагонов] ON [Тип вагона].Код = [Количество вагонов].[Тип вагона]
GROUP BY [Количество вагонов]*[Количество мест], [Количество вагонов].[Номер поезда], [Тип вагона].Код
HAVING ((([Количество вагонов].[Номер поезда])=[Forms]![Билет]![Номер поезда]) AND (([Тип вагона].Код)=[Forms]![Билет]![Тип вагона]));
Этот запрос вычисляет и заносит в таблицу «Т1» количество существующих мест в данном поезде в данном типе вагона. После этого невидимо для пользователя открывается форма «Ф1». Из формы «Ф1» заносится поле «Мест» в форму «Билет» в невидимое поле «Поле30». Потом форма «Ф1» закрывается. Далее снова открывается запрос «ЗУ1» и после этого запрос «З2».
INSERT INTO Т1 ( Мест )
SELECT Count(З3.Номер) AS [Count-Номер]
FROM З3;
Этот запрос подсчитывает и заносит в таблицу «Т1» количество записей в запросе «З3».
SELECT [Купил билет].Номер
FROM [Купил билет]
GROUP BY [Купил билет].Номер, [Купил билет].[Номер поезда], [Купил билет].[Тип вагона], [Купил билет].Дата
HAVING ((([Купил билет].Номер)<>[Forms]![Билет]![Номер]) AND (([Купил билет].[Номер поезда])=[Forms]![Билет]![Номер поезда]) AND (([Купил билет].[Тип вагона])=[Forms]![Билет]![Тип вагона]) AND (([Купил билет].Дата)=[Forms]![Билет]![Дата]));
Запрос «З3» подсчитывает количество уже проданных билетов на данный поезд на данную дату отправления в данный тип вагона. Причем текущий билет в этом подсчете не учитывается. После этого невидимо для пользователя снова открывается форма «Ф1». Из формы «Ф1» заносится поле «Мест» в форму «Билет» в невидимое поле «Поле32». Потом форма «Ф1» закрывается. В случае если содержание поля «Поле30» больше поля «Поле32», макрос закрывает форму «Билет» и открывает форму «Билеты». В противном случае на экране появляется сообщение «Мест нет». При нажатии на кнопку «Новый пассажир» выполняется макрос «КнНовый пассажир_Билет», который открывает форму «Новый пассажир». При нажатии на кнопку «Отчет» выполняется макрос «КнОтчет_Билет», который открывает для просмотра отчет «ОБилет». Также на форме расположены восемь полей: номер билета, пассажир, дата отправления, номер поезда, стоимость, тип вагона, скидка, до станции. Поля «Номер поезда», «Тип вагона», «До станции», «Пассажир», «Дата отправления» являются полями со списком. Источником строк поля «Номер поезда» является запрос «ЗНомер поезда».
SELECT [Номер поезда].Код, [Номер поезда].[Номер поезда], [Номер поезда].[Вид поезда]
FROM [Номер поезда]
ORDER BY [Номер поезда].[Номер поезда];
Этот запрос реализует сортировку номеров поездов по возрастанию. Источником строк поля «Тип вагона» является запрос «ЗТип вагона». Источником строк поля «До станции» является запрос «ЗСтанция2».
SELECT Станция.Код, Станция.Станция, Станция.Расстояние, [Следует через].[Номер поезда]
FROM Станция INNER JOIN [Следует через] ON Станция.Код = [Следует через].Станция
WHERE ((([Следует через].[Номер поезда])=[Forms]![Билет]![Номер поезда]))
ORDER BY Станция.Станция;
Этот запрос выдает только те станции, через которые проходит данный поезд. Станции отсортированы в алфавитном порядке. Источником строк для поля «Пассажир» является запрос «ЗПассажир». Источником строк для поля «Дата отправления» является запрос «ЗДата отправления».
SELECT [Дата отправления].Код, [Дата отправления].Дата
FROM [Дата отправления]
ORDER BY [Дата отправления].Дата DESC;
Этот запрос сортирует в порядке убывания даты отправления поездов. Поле «Скидка» недоступно для редактирования пользователем, оно принимает значение в зависимости от выбранного пассажира. Поле «Стоимость» также недоступно для редактирования, оно принимает вычисляемое значение. Источником формы является запрос «ЗБилет».
SELECT [Купил билет].Номер, [Купил билет].Дата, [Купил билет].[Номер поезда], [Купил билет].[Тип вагона], [Купил билет].Станция, [Купил билет].Пассажир, [Купил билет].Цена, Скидка.Льгота, [Расстояние]*[Стоимость км]*[Коэффициент класса]*(100-[Льгота])/100 AS Стоимость
FROM [Тип вагона] INNER JOIN (Станция INNER JOIN (Скидка INNER JOIN (Пассажир INNER JOIN (([Вид поезда] INNER JOIN [Номер поезда] ON [Вид поезда].Код = [Номер поезда].[Вид поезда]) INNER JOIN [Купил билет] ON [Номер поезда].Код = [Купил билет].[Номер поезда]) ON Пассажир.Код = [Купил билет].Пассажир) ON Скидка.Код = Пассажир.Скидка) ON Станция.Код = [Купил билет].Станция) ON [Тип вагона].Код = [Купил билет].[Тип вагона];
Запрос предназначен для выборки всех полей из таблицы «Купил билет» и поля «Скидка» из таблицы «Скидка». Также в запросе определяется вычисляемое поле «Стоимость». В форме можно установить любые параметры текущего билета.
Форма «Новый пассажир» (Приложение 13) содержит одну кнопку «ОК», при нажатии на которую выполняется макрос «КнОК_Новый пассажир», который закрывает форму «Новый пассажир». Также на форме расположены простое поле «ФИО» и поле со списком «Скидка». Источником строк для поля «Скидка» является запрос «ЗСкидка».
SELECT Скидка.Код, Скидка.Льгота
FROM Скидка
ORDER BY Скидка.Льгота;
Запрос сортирует процент скидки по возрастанию. Источником формы является таблица «Пассажир». В форму можно ввести ФИО нового пассажира и процент скидки предоставляемый ему. Если нажать кнопку «ОК» и при этом ничего не ввести, то новый пассажир не будет добавлен.
Форма «Сервис» (Приложение 14) является основным меню выбора предоставляемых программным приложением сервисных услуг. При нажатии на кнопку «Назад» выполняется макрос «КнНазад_Сервис», который закрывает форму «Сервис» и открывает форму «Главная». При нажатии на кнопку «Сколько пассажиров ездило до заданной станции в указанную дату» выполняется макрос «КнПассажиры до станции_Сервис», который закрывает форму «Сервис» и открывает форму «Пассажиры до станции». При нажатии на кнопку «На каких поездах можно доехать до указанной станции» выполняется макрос «КнПоезда до станции_Сервис», который закрывает форму «Сервис» и открывает форму «Поезда до станции». При нажатии на кнопку «Сколько стоили все билеты на заданный поезд на заданную дату» выполняется макрос «КнПриход_Сервис», который закрывает форму «Сервис» и открывает форму «Приход».
Форма «Поезда до станции» (Приложение 15) содержит две кнопки. При нажатии на кнопку «Назад» выполняется макрос «КнНазад_Поезда до станции», который закрывает форму «Поезда до станции» и отчет «ОПоезда до станции». После этого макрос открывает форму «Сервис». При нажатии на кнопку «Отчет» выполняется макрос «КнОтчет_Поезда до станции», который открывает для просмотра отчет «ОПоезда до станции». После открытия формы автоматически запускается макрос «ОткрПоезда до станции», который задает полю со списком «До станции» значение первого элемента списка. На форме расположены три поля: номер поезда, тип поезда, до станции. Поля «Номер поезда» и «Тип поезда» недоступны для редактирования пользователем. Поле «До станции» является, как уже говорилось, полем со списком. В качестве источника строк используется запрос «ЗСтанция». После изменения значения поля «До станции» выполняется макрос «ИзмВСтанция_Поезда до станции», который устанавливает фильтр, для того чтобы на экран выводились только те поезда, которые проходят через станцию, указанную в поле «До станции». Источником формы является запрос «ЗПоезда до станции».
SELECT [Номер поезда].[Номер поезда], [Вид поезда].[Вид поезда], [Следует через].Станция
FROM ([Вид поезда] INNER JOIN [Номер поезда] ON [Вид поезда].Код = [Номер поезда].[Вид поезда]) INNER JOIN [Следует через] ON [Номер поезда].Код = [Следует через].[Номер поезда]
ORDER BY [Номер поезда].[Номер поезда];
Запрос предназначен для выборки из трех таблиц номера поезда, типа поезда и станций, через которые этот поезд проезжает. Также запрос производит сортировку по возрастанию по полю «Номер поезда».
Форма «Пассажиры до станции» (Приложение 16) содержит две кнопки. При нажатии на кнопку «Назад» выполняется макрос «КнНазад_Пассажиры до станции», который закрывает форму «Пассажиры до станции» и отчет «ОПассажиры до станции». После этого макрос открывает форму «Сервис». При нажатии на кнопку «Отчет» выполняется макрос «КнОтчет_Пассажиры до станции», который открывает для просмотра отчет «ОПассажиры до станции». После открытия формы автоматически запускается макрос «ОткрПассажиры до станции», который задает полям со списком «До станции» и «Дата» значения первого элемента списка. На форме расположены пять полей: дата, количество пассажиров, скидка, всего, до станции. Поля «Скидка», «Всего» и «Количество пассажиров» недоступны для редактирования пользователем. Поля «До станции» и «Дата» являются, как уже говорилось, полями со списком. В качестве источника строк для поля «До станции» используется запрос «ЗСтанция». В качестве источника строк для поля «Дата» используется запрос «ЗДата отправления». После изменения значения одного из полей «До станции» или «Дата» выполняется макрос «ИзмВ_Пассажиры до станции», который устанавливает фильтр, для того чтобы на экран выводилось количество только тех пассажиров, которые купили билеты до станции, указанной в поле «До станции», и на дату, указанную в поле «Дата». Источником формы является запрос «ЗПассажиры до станции».
SELECT Скидка.Льгота, [Купил билет].Станция, [Купил билет].Дата, Count([Купил билет].Номер) AS [Count-Номер]
FROM Скидка INNER JOIN (Пассажир INNER JOIN [Купил билет] ON Пассажир.Код = [Купил билет].Пассажир) ON Скидка.Код = Пассажир.Скидка
GROUP BY Скидка.Льгота, [Купил билет].Станция, [Купил билет].Дата
ORDER BY Скидка.Льгота;
Запрос предназначен для подсчета количества пассажиров, купивших билеты до каждой станции на каждую дату отправления с каждым видом скидки. Также запрос производит сортировку по возрастанию по полю «Скидка».
Форма «Приход» (Приложение 17) содержит две кнопки. При нажатии на кнопку «Назад» выполняется макрос «КнНазад_Приход», который закрывает форму «Приход» и отчет «ОПриход». После этого макрос открывает форму «Сервис». При нажатии на кнопку «Отчет» выполняется макрос «КнОтчет_Приход», который открывает для просмотра отчет «ОПриход». После открытия формы автоматически запускается макрос «ОткрПриход», который задает полям со списком «Номер поезда» и «Дата» значения первого элемента списка. На форме расположены пять полей: дата, номер поезда, тип вагона, всего, сумма. Поля «Тип вагона», «Всего» и «Сумма» недоступны для редактирования пользователем. Поля «Номер поезда» и «Дата» являются, как уже говорилось, полями со списком. В качестве источника строк для поля «Номер поезда» используется запрос «ЗНомер поезда». В качестве источника строк для поля «Дата» используется запрос «ЗДата отправления». После изменения значения одного из полей «Номер поезда» или «Дата» выполняется макрос «ИзмВ_Приход», который устанавливает фильтр, для того чтобы на экран выводилась сумма продажи только тех билетов, которые были проданы на поезд, номер которого указан в поле «Номер поезда», и на дату, указанную в поле «Дата». Источником формы является запрос «ЗПриход».
SELECT [Купил билет].Дата, [Купил билет].[Номер поезда], [Тип вагона].[Тип вагона], Sum([Купил билет].Цена) AS [Sum-Цена]
FROM [Тип вагона] INNER JOIN [Купил билет] ON [Тип вагона].Код = [Купил билет].[Тип вагона]
GROUP BY [Купил билет].Дата, [Купил билет].[Номер поезда], [Тип вагона].[Тип вагона]
ORDER BY [Тип вагона].[Тип вагона];
Запрос предназначен для подсчета суммы продажи билетов, проданных на каждый поезд на каждую дату на каждый тип вагона. Также запрос производит сортировку по алфавиту по полю «Тип вагона».
Отчет «ОБилеты» (Приложение 18) содержит пять полей: номер билета, пассажир, дата отправления, номер поезда, цена. Источником отчета является запрос «ЗКупил билет». Отчет выводит на печать и на экран список всех проданных билетов и краткую информацию к каждому билету.
Отчет «ОБилет» (Приложение 19) содержит восемь полей: номер билета, пассажир, дата отправления, номер поезда, цена, тип вагона, скидка, до станции. Источником отчета является запрос «ЗОБилет».
SELECT [Купил билет].Номер, [Дата отправления].Дата, [Номер поезда].[Номер поезда], [Тип вагона].[Тип вагона], Станция.Станция, Пассажир.ФИО, [Купил билет].Цена, Скидка.Льгота
FROM [Тип вагона] INNER JOIN (Станция INNER JOIN (Скидка INNER JOIN (Пассажир INNER JOIN ([Номер поезда] INNER JOIN ([Дата отправления] INNER JOIN [Купил билет] ON [Дата отправления].Код = [Купил билет].Дата) ON [Номер поезда].Код = [Купил билет].[Номер поезда]) ON Пассажир.Код = [Купил билет].Пассажир) ON Скидка.Код = Пассажир.Скидка) ON Станция.Код = [Купил билет].Станция) ON [Тип вагона].Код = [Купил билет].[Тип вагона]
ORDER BY [Купил билет].Номер;
Запрос предназначен для выборки всех необходимых полных данных билетов из семи таблиц. Отчет выводит на экран и на печать полную информацию о текущем билете.
Отчет «ОПоезда до станции» (Приложение 20) содержит три поля: номер поезда, тип поезда, до станции. Источником отчета является запрос «ЗПоезда до станции». Отчет выводит на экран и на печать список номеров всех поездов и типы поездов, проходящих через выбранную станцию.
Отчет «ОПассажиры до станции» (Приложение 21) содержит пять полей: дата, количество пассажиров, скидка, всего, до станции. Источником отчета является запрос «ЗПассажиры до станции». Отчет выводит на печать и на экран список количества пассажиров по каждому проценту скидки, которые приобрели билеты на выбранную дату и до выбранной станции.
Отчет «ОПриход» (Приложение 22) содержит пять полей: дата, номер поезда, тип вагона, всего, сумма. Источником формы является запрос «ЗПриход». Отчет выводит на экран и на печать список сумм по продаже билетов на каждый тип вагона, которые были проданы на выбранный номер поезда и на выбранную дату отправления.