Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ZelinskayaM_KR_PIS.docx
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
4 Mб
Скачать

Заключение

В рамках курсовой работы рассматривается процесс оказания услуг автошколой.

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

Разработанная система позволяет хранить и работать со следующей информацией:

  • информация о клиентах,

  • оплата от клиентов,

  • информация о группах,

  • информация о преподавателях,

  • информация о занятиях,

  • информация о занятиях сверх нормы,

  • Информация об экзаменах.

Система формирует отчеты с различным оформлением:

  • В «Отчете по допущенным до экзамена в ГАИ»:

    • Выделяются жирным шрифтом те клиенты, кто сдает экзамен на базе автошколы,

    • Выделяются красным шрифтом те клиенты, у которых отсутствуют свидетельства об окончании обучения.

  • В «Отчете по сдаче экзаменов в ГАИ по преподавателям»:

    • Выделяются зеленым цветом те клиенты, которые сдали успешно экзамен с первой попытки,

    • Выделяются красным шрифтом те клиенты, для которых вторая и последующие попытки сдачи экзаменов провальные.

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

Список литературы

  1. Гейн К., Сарсон Т. Структурный системный анализ: средства и методы . – М : Эйтекс, 1992.

  2. Документация FireBird, URL: http://www.firebirdsql.org/manual/ru/

  3. Калашян А.Н ., Калянов Г.Н . Структурны е м одели бизнеса: DFD-технологии. – М .: Финансы и статистика, 2003.

  4. Калянов Г.Н. Консалтинг при автоматизации предприятий: подходы , методы , средства. URL: http://www.interface.ru/fset.asp?Url = /case/defs0.htm.

  5. Карпова Т. С. Базы данных: модели, разработка, реализация/ Т.С. Карпова.-СПб.:Питер, 2001.-304с.

  6. Коннолли Томас. Базы данных. Проектирование, реализация, сопровождение. Теория и практика. 3-е издание./Томас Коннолли, Каролин Бегг.-М.:Издательский дом «Вильямс», 2003.-1440 с.

  7. Моор П.К. Базы данных. / П.К. Моор, А.П. Моор.-Тюмень. Издательство Тюменского государственного университета, 2010.-288 с.

  8. Питер Пин-Шен Чен. Модель «сущность-связь» — шаг к единому представлению о данных. М., 2000 г.

Приложение 1

Документы

Рисунок 1 – Отчет по допущенным до экзамена в ГАИ

Рисунок 2 – Отчет по сдаче экзаменов в ГАИ по преподавателям

Рисунок 3 – Свидетельство об окончании курсов водителей категории «B»

Приложение 2

Словарь данных для описания диаграммы потоков данных

@ИМЯ = Отчет по допущенным до экзамена в ГАИ

@ТИП = дискретный поток

@БНФ = ID_группы + Название группы + 1{ID_Клиента + Фамилия + Имя + Отчество + телефон + отметка о сдаче экзамена на базе автошколы + Nсвидетельства}

@ИМЯ = Информация о сдаче экзамена

@ТИП = дискретный поток

@БНФ = 1{ID_клиента + Фамилия + Имя + Отчество + Дата экзамена + [«Теория» ! «Автодром» ! «Город»] + [«Внутренний экзамен» ! «Экзамен в ГАИ»] + штрафной балл}

@ИМЯ = Информация о группе

@ТИП = дискретный поток

@БНФ = ID_группы + Название группы

@ИМЯ = Информация о новой группе

@ТИП = дискретный поток

@БНФ = ID_группы + Название группы + Дата начала занятий + Стоимость обучения + Количество часов теории + количество часов вождения + ID_Преподавателя + ФИО преподавателя + «Лектор»

@ИМЯ = Данные о новой группе

@ТИП = дискретный поток

@БНФ = ID_группы + Название группы + Дата начала занятий + Стоимость обучения + Количество часов теории + количество часов вождения + ID_Преподавателя + ФИО преподавателя + «Лектор»

@ИМЯ = Информация о преподавателе

@ТИП = дискретный поток

@БНФ = ID_Преподавателя + ФИО + [«Лектор» ! «Инструктор»]

@ИМЯ = Список присутствующих на занятии

@ТИП = дискретный поток

@БНФ = Дата занятия + {ID_клиента + Фамилия + Имя + Отчество + количество часов} + [«Вождение» ! «Теория»]

@ИМЯ = Отчет по сдаче экзамена в ГАИ по преподавателям

@ТИП = дискретный поток

@БНФ = Id_Преподавателя + ФИО + «Экзамен в ГАИ» + [[«Лектор» + 1{«Теория» + Nгруппы + Название группы + ID_Клиента + Фамилия + Имя + Отчество + телефон + Nсвидетельства + Количество пересдач + Результат последнего экзамена}] ! [«Инструктор» + 1{[«Автодром» ! «Город»] + Nгруппы + Название группы + ID_Клиента + Фамилия + Имя + Отчество + телефон + Nсвидетельства + Количество пересдач + Результат последнего экзамена }]]

@ИМЯ = Информация об оплате занятий

@ТИП = дискретный поток

@БНФ = 1{ID_клиента + Фамилия + Имя + Отчество + Сумма оплаты + Дата оплаты}

@ИМЯ = Информация о клиенте

@ТИП = дискретный поток

@БНФ = ID_Клиента + Фамилия + Имя + Отчество +Дата рождения + прописка + Nпаспорта + серия паспорта +Кем выдан + Когда выдан + телефон + (отметка о сдаче экзамена на базе автошколы) + (Nсвидетельства) + (Nсправки) + (отметка об уплате гос. пошлины) + (Id_Группы) + (ID_преподавателя + ФИО преподавателя + «Инструктор»)

@ИМЯ = Стоимость часа занятия

@ТИП = дискретный поток

@БНФ = Цена на текущий день

@ИМЯ = Свидетельство об окончании обучения

@ТИП = дискретный поток

@БНФ = 1{Nсвидетельства + ID_Клиента + Фамилия + Имя + Отчество + Nсправки}

@ИМЯ = Информация об оплате клиентами

@ТИП = дискретный поток

@БНФ = 1{ID_клиента + Сумма оплаты + Дата оплаты}

@ИМЯ = Запрос информации о клиенте

@ТИП = Управляющий поток

@БНФ = /Запрос информации о клиенте/

@ИМЯ = Информация о найденном клиенте

@ТИП = дискретный поток

@БНФ = ID_Клиента + Фамилия + Имя + Отчество + Дата рождения + прописка + Nпаспорта + серия паспорта +Кем выдан + Когда выдан + телефон + отметка о сдаче экзамена на базе автошколы + Nсвидетельства + Nсправки + отметка об уплате гос. пошлины + Id_Группы+ ID_преподавателя + ФИО преподавателя + «Инструктор»

@ИМЯ = Данные о клиенте

@ТИП = дискретный поток

@БНФ = ID_Клиента + Фамилия + Имя + Отчество + Дата рождения+ прописка + Nпаспорта + серия паспорта + Кем выдан + Когда выдан + телефон + (отметка о сдаче экзамена на базе автошколы) + (Nсвидетельства) + (Nсправки) + (отметка об уплате гос. пошлины) + (Id_Группы) + ID_преподавателя + ФИО преподавателя + «Инструктор»

@ИМЯ = Запрос информации об оплате

@ТИП = Управляющий поток

@БНФ = /Запрос информации об оплате для списка клиентов/

@ИМЯ = Информация об оплате

@ТИП = дискретный поток

@БНФ = 1{ID-клиента + сумма оплаты}

@ИМЯ = Номера свидетельств для клиентов

@ТИП = дискретный поток

@БНФ = 1{ID_клиента + Фамилия + Имя + Отчество + NСвидетельства}

@ИМЯ = Запрос информации о клиентах

@ТИП = Управляющий поток

@БНФ = /Запрос информации для списка клиентов/

@ИМЯ = Данные о клиентах

@ТИП = дискретный поток

@БНФ = = 1{ID_Клиента + Фамилия + Имя + Отчество + телефон + отметка о сдаче экзамена на базе автошколы + Nсвидетельства + Nсправки + отметка об уплате гос. пошлины + Id_Группы + Название группы+ ID_преподавателя + ФИО преподавателя + [«Инструктор»! «Лектор»]}

@ИМЯ = Запрос результатов сдачи экзаменов в ГАИ

@ТИП = Управляющий поток

@БНФ = /Запрос результатов сдачи экзаменов в ГАИ для списка клиентов/

@ИМЯ = Данные о сдаче экзаменов в ГАИ

@ТИП = дискретный поток

@БНФ = 1{ID_клиента + количество пересдач + Результат последнего экзамена + [«Теория» ! «Автодром» ! «Город»] + «Экзамен в ГАИ»}

@ИМЯ = Запрос результатов сдачи внутренних экзаменов

@ТИП = Управляющий поток

@БНФ = /Запрос результатов последней сдачи внутренних экзаменов для списка клиентов/

@ИМЯ = Данные о сдаче внутренних экзаменов

@ТИП = дискретный поток

@БНФ = 1{ID_клиента + дата экзамена + [«Теория» ! «Автодром» ! «Город»] + «Внутренний экзамен» + штрафной балл}

@ИМЯ = Запрос информации о сумме оплаты за часы сверх нормы

@ТИП = Управляющий поток

@БНФ = /Запрос информации о сумме оплаты за часы сверх нормы для списка клиентов/

@ИМЯ = Данные о сумме оплаты за часы сверх нормы

@ТИП = дискретный поток

@БНФ = 1{ID_клиента + Сумма оплаты часов сверх нормы}

@ИМЯ = Данные о сдаче экзаменов

@ТИП = дискретный поток

@БНФ = 1{ID_клиента + Дата экзамена + [«Теория» ! «Автодром» ! «Город»] + [«Внутренний экзамен» ! «Экзамен в ГАИ»] + штрафной балл}

@ИМЯ = Информация о часах сверх нормы

@ТИП = дискретный поток

@БНФ =1{ID_клиента + Количество часов + стоимость часа}

@ИМЯ = Запрос информации о часах пройденных занятий

@ТИП = Управляющий поток

@БНФ = /Запрос информации о часах пройденных занятий для списка клиентов/

@ИМЯ = Информация о часах пройденных занятий

@ТИП = дискретный поток

@БНФ = 1{Дата занятия + ID_клиента + количество часов + [«Вождение» ! «Теория»]}

@ИМЯ = Информация о посещении занятий

@ТИП = дискретный поток

@БНФ = 1{Дата занятия + ID_клиента + количество часов + [«Вождение» ! «Теория»] }

@ИМЯ = Запрос информации о норме часов

@ТИП = Управляющий поток

@БНФ = /Запрос информации о норме часов для списка клиентов/

@ИМЯ = Норма часов

@ТИП = дискретный поток

@БНФ = 1{Дата занятия + ID_клиента + количество теории + количество часов вождения}

@ИМЯ = Информация о клиентах

@ТИП = дискретный поток

@БНФ = 1{ID_Клиента + Фамилия + Имя + Отчество + Дата рождения + телефон + отметка о сдаче экзамена на базе автошколы + Nсвидетельства + Id_Группы + Наименование группы}

@ИМЯ = Список допущенных до экзамена в ГАИ

@ТИП = дискретный поток

@БНФ = 1{ID_Клиента + Фамилия + Имя + Отчество + Дата рождения + телефон + отметка о сдаче экзамена на базе автошколы + Nсвидетельства + Id_группы + Наименование группы}

1) Спецификация процесса 1.1 «Внесение информации об оплате»

@ВХОД = Информация об оплате занятий

@ВЫХОД = Информация об оплате клиентами

@СПЕЦИФИКАЦИЯ ПРОЦЕССА

ВЫПОЛНИТЬ

«Загрузить в $ТаблицаОплат информацию из файла «информация об оплате занятий», который предоставляет бухгалтерия. Проверить правильность введенных данных.

Для каждой стр из $ТаблицаОплат цикл

ВСТАВИТЬ В ЖурналОплат(Id_клиента, ДатаОплаты, СуммаОплаты) ЗНАЧЕНИЯ ($Стр.ID_Клиента, $Дата оплаты, $Стр.СуммаОплаты)

КонецЦикла»

КОНЕЦ

@КОНЕЦ СПЕЦИФИКАЦИИ ПРОЦЕССА

2) Спецификация процесса 1.2 «Поиск клиента в базе»

@ВХОД = Информация о клиенте

@ВХОД = Информация о найденном клиенте

@ВЫХОД = Данные о клиенте

@ВЫХОД = Запрос информации о клиенте

@СПЕЦИФИКАЦИЯ ПРОЦЕССА

ВЫПОЛНИТЬ

«Происходит поиск клиента.

Если клиент = не найден тогда

В хранилище «Клиенты» вносится информация о новом клиенте. Назначается инструктор.

Иначе

в хранилище «Клиенты» помещается обновленная информация о клиенте.

КонецЕсли»

КОНЕЦ

@КОНЕЦ СПЕЦИФИКАЦИИ ПРОЦЕССА

3) Спецификация процесса 1.4 «Ввод информации о результатах сдачи экзаменов»

@ВХОД = Информация о сдаче экзамена

@ВЫХОД = Данные о сдаче экзамена

@СПЕЦИФИКАЦИЯ ПРОЦЕССА

ВЫПОЛНИТЬ

«Загрузить в $ТаблицаЭкзамены информацию из файла «Информация о сдаче экзамена», который предоставляет учебный отдел. Проверить правильность введенных данных.

Заполнить параметры: $ТипЭкзамена (список выбора: 0-«Теория», 1-«Автодром», 2-«Город») и $ВидЭкзамена (chakBox: falshe-«Внутренний», True-«Экзамен в ГАИ»)

Для каждой стр из $ТаблицаЭкзамены цикл

ВСТАВИТЬ В ЖурналУчетаСдачиЭкзаменов (Id_клиента, ДатаЭкзамена, ТипЭкзамена, ВидЭкзамена, ШтрафныеБаллы) ЗНАЧЕНИЯ ($Стр.ID_Клиента, $ДатаЭкзамена, $ТипЭкзамена, $ВидЭкзамена, $Стр.ШтрафныеБаллы)

КонецЦикла»

КОНЕЦ

@КОНЕЦ СПЕЦИФИКАЦИИ ПРОЦЕССА

4) Спецификация процесса 1.5 «Внесение информации о посещаемости занятий»

@ВХОД = Норма часов

@ВХОД = Стоимость часа занятия

@ВХОД = Список присутствующих на занятии

@ВХОД = Список присутствующих на занятии

@ВХОД = Информация о часах пройденных занятий

@ВЫХОД = Информация о часах сверх нормы

@ВЫХОД = Запрос информации о часах пройденных занятий

@ВЫХОД = Информация о посещении занятий

@ВЫХОД = Запрос информации о норме часов

@СПЕЦИФИКАЦИЯ ПРОЦЕССА

«Оператор направляет запрос на внесение информации о пройденных часах занятий. Выбирает тип занятия (TRUE – Лекция, False-Вождение). Определяется количество часов превышающих норму»

Информация из списка присутствующих заносится в хранилище «Журнал посещаемости»

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

/* Определим норму часов для списка клиентов */

ВЫБРАТЬ

СписокПРисутствующихНаЗанятии.ID_Клиента,

ВЫБОР

КОГДА $ТипЗанятия ТОГДА

КоличествоЧасовТеории

ИНАЧЕ

КоличествоЧасовВождения

КОНЕЦ КАК норма

ПОМЕСТИТЬ В НормаЗанятий

ИЗ СписокПРисутствующихНаЗанятии, Клиенты, Группы

ГДЕ СписокПРисутствующихНаЗанятии.ID_Клиента = Клиенты.ID_Клиента И Группа_ID = ID_Группа

////////////////////////////////////////////////

ВЫБРАТЬ

НормаЗанятий. ID_Клиента,

ВЫБОР

КОГДА ЕСТЬNULL(ПройденныеЗанятия.КоличествоЧасов, 0)> НормаЗанятий.Норма ТОГДА

ЕСТЬNULL(ПройденныеЗанятия.КоличествоЧасов, 0)-НормаЗанятий.Норма

ИНАЧЕ

0

КОНЕЦ как СверхНормы

ПОМЕСТИТЬ ЧасыСверхНормы

ИЗ

НормаЗанятий ЛЕВОЕ СОЕДИНЕНИЕ

(ВЫБРАТЬ

Клиент_ID, СУММА(КоличествоЧасов) как КоличествоЧасов

ИЗ ЖурналПосещаемости ГДЕ ТипЗанятия = $ТипЗанятия

ГРУППИРОВАТЬ ПО Клиент_ID) как ПройденныеЗанятия

ПО НормаЗанятий.ID_Клиента = ПройденныеЗанятия. Клиент_ID

ГДЕ СверхНормы>0

Для каждого Стр из ЧасыСверхНормы Цикл

ВСТАВИТЬ В ЖуранлУчетаЧасовСверхНормы(Клиент_ID, КоличествоЧасов, СтоимостьЧаса) ЗНАЧЕНИЯ($Стр.Клиент_ID, $Стр.СВерхНормы, $СтоимостьЧаса)

КонецЦикла

КОНЕЦ

@КОНЕЦ СПЕЦИФИКАЦИИ ПРОЦЕССА

5) Спецификация процесса 1.6 «Внесение информации о группе»

@ВХОД = Информация о новой группе

@ВЫХОД = Данные о новой группе

@СПЕЦИФИКАЦИЯ ПРОЦЕССА

ВЫПОЛНИТЬ

«Оператор вносит информацию о новой группе»

ВСТАВИТЬ В Группы (НазваниеГруппы, ДатаНачалаЗанятий, СтоимостьОбучения, КоличествоЧасовТеории, КоличествоЧасовВождения, ID_Преподавателя) ЗНАЧЕНИЯ ($Стр.НазваниеГруппы, $ДатаНачалаЗанятий, $СтоимостьОбучения, $КоличествоЧасовТеории, $КоличествоЧасовВождения, $ID_Преподавателя)

КОНЕЦ

@КОНЕЦ СПЕЦИФИКАЦИИ ПРОЦЕССА

6) Спецификация процесса 1.3.1 «Получение информации о клиентах»

@ВХОД = Данные о клиентах

@ВХОД = Информация о группе

@ВХОД = Информация о преподавателе

@ВЫХОД = Запрос информации о клиентах

@ВЫХОД = Информация о клиентах

@СПЕЦИФИКАЦИЯ ПРОЦЕССА

ВЫПОЛНИТЬ

ЕСЛИ существует список выбора «Группа» ТОГДА

ВЫБРАТЬ ID_Клиента, Фамилия, Имя, Отчество, Дата рождения Телефон, ОтметкаОСдачеЭкзаменаНаБазеАвтошколы, Nсвидетельства, Id_Группы, Наименование_группы

ПОМЕСТИТЬ в ИнформацияОКлиентах

ИЗ Клиенты, Группы

ГДЕ ID_Группа = Группа_ID И ID_Группа = $Группа И ОтметкаОбУплатеГосПошлины И Фамилия IS NOT NULL И Имя, IS NOT NULL И Отчество IS NOT NULL И прописка IS NOT NULL И Nпаспорта IS NOT NULL И СерияПаспорта IS NOT NULL И Nсправки IS NOT NULL

ИНАЧЕ

ЕСЛИ существует список выбора «Преподаватель» ТОГДА

ЕСЛИ $Преподаватель.ТИП ТОГДА

ВЫБРАТЬ ID_Клиента, Фамилия, Имя, Отчество, Дата рождения, Телефон, ОтметкаОСдачеЭкзаменаНаБазеАвтошколы, Nсвидетельства, Id_Группы, Наименование_группы

ПОМЕСТИТЬ в ИнформацияОКлиентах

ИЗ Клиенты, Группы

ГДЕ ID_Группа = Группа_ID И Группы.Преподаватель_ID = $Преподаватель.ID_Преподавателя и ОтметкаОСдачеЭкзаменаНаБазеАвтошколы

ИНАЧЕ

ВЫБРАТЬ ID_Клиента, Фамилия, Имя, Отчество, Дата рождения; Телефон, ОтметкаОСдачеЭкзаменаНаБазеАвтошколы, Nсвидетельства, Id_Группы, Наименование_группы

ПОМЕСТИТЬ в ИнформацияОКлиентах

ИЗ Клиенты, Группы

ГДЕ ID_Группа = Группа_ID И Клиенты.Преподаватель_ID = $Преподаватель.ID_Преподавателя и ОтметкаОСдачеЭкзаменаНаБазеАвтошколы

КОНЕЦЕСЛИ

КОНЕЦЕСЛИ

КОНЕЦЕСЛИ

КОНЕЦ

@КОНЕЦ СПЕЦИФИКАЦИИ ПРОЦЕССА

7) Спецификация процесса 1.3.2 «Формирование отчета по допущенным до экзамена в ГАИ»

@ВХОД = Данные о сдаче внутренних экзаменов

@ВХОД = Информация об оплате

@ВХОД = Данные о сумме оплаты за часы сверх нормы

@ВХОД = Информация о клиентах

@ВЫХОД = Запрос информации об оплате

@ВЫХОД = Запрос результатов сдачи внутренних экзаменов

@ВЫХОД = Запрос информации о сумме оплаты за часы сверх нормы

@ВЫХОД = Отчет по допущенным до экзамена в ГАИ

@ВЫХОД = Список допущенных до экзамена в ГАИ

@СПЕЦИФИКАЦИЯ ПРОЦЕССА

ВЫПОЛНИТЬ

«Оператор запрашивает отчет по допущенным до экзамена в ГАИ. Данный отчет содержит информацию о допущенных до экзамена. К экзамену допускаются все, у кого нет долгов по оплате и успешно сданы внутренние экзамены. Данный отчет направляется в отдел обучения. Список допущенных отправляется для проверки наличия Свидетельств об обучении»

/* Вид экзамена falshe-«Внутренний», True-«Экзамен в ГАИ» */

$Массив клиентов = ИнформацияОКлиентах.ВЫгрузитьКОлонку (ID_КЛИЕНТА);

/* Определим дату последнего экзамена для списка клиентов */

ВЫБРАТЬ Клиент_ID, МАКС(ДатаЭкзамена) как ДатаЭкзамена, ТипЭкзамена

ПОМЕСТИТЬ ВнутрЭкзамены

ИЗ Экзамены

ГРУППИРОВАТЬ ПО Клиент_ID, ТипЭкзамена

ОТОБРАТЬ Клиент_ID В($Массив клиентов) И НЕ ВидЭкзамена

///////////////////////////////////////////////////////////

/* Список клиентов, которые сдали внутренние экзамены.

Типы экзаменов: 0-«Теория», 1-«Автодром», 2-«Город». */

ВЫБРАТЬ

ВнутрЭкзамены.Клиент_ID,

ВнутрЭкзамены.ТипЭкзамена,

ВЫБОР КОГДА ТипЭкзамена = 0 ТОГДА

ШтрафнойБалл<3

ИНАЧЕ

ШтрафнойБалл<5

КОНЕЦ КАК РезультатЭкзамена

ПОМЕСТИТЬ РезультатыЭкзаменов

ИЗ ВнутрЭкзамены ЛЕВОЕ СОЕДИНЕНИЕ Экзамены

ПО ВнутрЭкзамены.Клиент_ID = Экзамены.Клиент_ID И ВнутрЭкзамены.ДатаЭкзамена = Экзамены. ДатаЭкзамена

ГДЕ РезультатЭкзамена

/////////////////////////////////////////////////////////

/* Список тех, кто сдал все 3 типа экзаменов */

ВЫБРАТЬ

РезультатЭкзамена. Клиент_ID

ПОМЕСТИТЬ ПрошлиЭкзамены

ИЗ РезультатЭкзамена

ГУППИРОВАТЬ ПО РезультатЭкзамена. Клиент_ID

ОТОБРАТЬ КОЛИЧЕСТВО(РезультатЭкзамена.Клиент_ID) = 3

////////////////////////////////////////////////////////////

/* Список клиентов, которые оплатили все занятия */

ВЫБРАТЬ Клиент_ID

ПОМЕСТИТЬ РезультатыОплаты

ИЗ

(ВЫБАРТЬ Клиент_ID, СУММА(СуммаОплаты) как СчетКлиента

ИЗ Оплата ГРУППИРОВАТЬ ПО Клиент_ID

ОТОБРАТЬ Клиент_ID В ($Массив клиентов)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ Клиент_ID, -СУММА(СтоимостьОбучения) как СчетКлиента

ИЗ Группа, Клиент

ГДЕ ID_Группа = Группа_ID

ГРУППИРОВАТЬ ПО Клиент_ID

ОТОБРАТЬ Клиент_ID В ($Массив клиентов)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ Клиент_ID, -СУММА(КоличествоЧасов * СтоимостьЧаса) как СчетКлиента ИЗ СтоимостьСверхНормы

ГРУППИРОВАТЬ ПО Клиент_ID

ОТОБРАТЬ Клиент_ID В ($Массив клиентов)) как Оплачено

ГРУППИРОВАТЬ ПО Клиент_ID

ОТОБРАТЬ СУММА(СчетКлиента)>0

////////////////////////////////////////////////////////////////////////////////////

/* Результирующая, с полной информацией по клиентам */

ВЫБРАТЬ

Итоговая.ID_Клиента, Фамилия, Имя, Отчество, Дата рождения, Телефон,

ВЫБОР КОГДА ОтметкаОСдачеЭкзаменаНаБазеАвтошколы ТОГДА

«Автошкола»

ИНАЧЕ

«ГАИ, по месту жительства»

КОНЕЦ как ОтметкаОСдачеЭкзаменаНаБАзеАвтошколы, Nсвидетельства, Id_Группы, Наименование_группы

ИЗ (ВЫБРАТЬ РАЗЛИЧНЫЕ Клиент_ID ИЗ

(ВЫБРАТЬ ПрошлиЭкзамены.Клиент_ID ИЗ ПрошлиЭкзамены

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РезультатыОплаты.Клиент_ID ИЗ РезультатыОплаты) КАК Список) КАК ОставшиесяКлиенты

ЛЕВОЕ СОЕДИНЕНИЕ ИнформацияОКлиентах ПО Итоговая.ID_Клиента = ИнформацияОКлиентах.ID_Клиента

КОНЕЦ

@КОНЕЦ СПЕЦИФИКАЦИИ ПРОЦЕССА

8) Спецификация процесса 1.3.3 «Формирование отчета о сдаче экзаменов в ГАИ по преподавателям»

@ВХОД = Данные о сдаче экзаменов в ГАИ

@ВХОД = Информация о клиентах

@ВЫХОД = Запрос результатов сдачи экзаменов в ГАИ

@ВЫХОД = Отчет по сдаче экзамена в ГАИ по преподавателям

@СПЕЦИФИКАЦИЯ ПРОЦЕССА

ВЫПОЛНИТЬ

«Оператор запрашивает Отчет по сдаче экзамена в ГАИ по преподавателям. Данный отчет содержит информацию о количестве пересдач и результате последних экзаменов у учеников по выбранному преподавателю. Данный отчет направляется в отдел обучения.»

/* Вид экзамена: falshe-«Внутренний», True-«Экзамен в ГАИ»

Типы экзаменов: 0-«Теория», 1-«Автодром», 2-«Город».

Типы преподавателей: True –лектор, false-инструктор*/

$Массив клиентов = ИнформацияОКлиентах.ВЫгрузитьКОлонку (ID_КЛИЕНТА);

ЕСЛИ $Преподаватель.ТИП ТОГДА

{

ВЫБРАТЬ Клиент_ID, МАКС(ДатаЭкзамена) как ДатаПЭкзамена, КОЛИЧЕСТВО( * ) как КолПересдач, ТипЭкзамена, ВидЭкзамена

ПОМЕСТИТЬ Пересдачи

ИЗ Экзамены

ГРУППИРОВАТЬ ПО Клиент_ID, ТипЭкзамена, ВидЭкзамена

ОТОБРАТЬ ВидЭкзамена И Клиент_ID В ($Массив клиентов) И ТипЭкзамена = 0

////////////////////////////////////////////

ВЫБРАТЬ

Пересдачи.Клиент_ID,

Пересдачи.ДатаПЭкзамена,

Пересдачи. КолПересдач,

«Теория» как ТипЭкзамена

Пересдачи.ВидЭкзамена,

ВЫБОР КОГДА ШтрафнойБалл<3 ТОГДА

«СДАН»

ИНАЧЕ

«НЕ СДАН»

КОНЕЦ КАК РезЭкзамена,

Фамилия, Имя, Отчество, прописка, Nпаспорта, серия паспорта, телефон, Nсвидетельства

ИЗ Пересдачи ЛЕВОЕ СОЕДИНЕНИЕ ИнформацияОКлиентах ПО Пересдачи.Клиент_ID = ИнформацияОКлиентах.ID_Клиента ЛЕВОЕ СОЕДИНЕНИЕ Экзамены ПО Пересдачи.Клиент_ID = Экзамены.Клиент_ID И Пересдачи.ДатаПЭкзамена = Экзамены.ДатаЭКзамена И Пересдачи.ТипЭкзамена = Экзамены.ТипЭкзамена И Пересдачи.ВидЭкзамена = Экзамены.ВидЭкзамена

СОРТИРОВАТЬ ПО

РезЭкзамена,

Фамилия, Имя, Отчество

}

ИНАЧЕ

{

ВЫБРАТЬ Клиент_ID, МАКС(ДатаЭкзамена) как ДатаПЭкзамена, КОЛИЧЕСТВО( * ) как КолПересдач, ТипЭкзамена, ВидЭкзамена

ПОМЕСТИТЬ Пересдачи

ИЗ Экзамены

ГРУППИРОВАТЬ ПО Клиент_ID, ТипЭкзамена, ВидЭкзамена

ОТОБРАТЬ ВидЭкзамена И Клиент_ID В ($Массив клиентов) И ТипЭкзамена>0

////////////////////////////////////////////

ВЫБРАТЬ

Пересдачи.Клиент_ID,

Пересдачи.ДатаПЭкзамена,

Пересдачи. КолПересдач,

ВЫБОР КОГДА Пересдачи.ТипЭкзамена=1 ТОГДА

«Автодром» ИНАЧЕ «Город»

КОНЕЦ как ТипЭкзамена,

Пересдачи.ВидЭкзамена,

ВЫБОР КОГДА ШтрафнойБалл<5 ТОГДА

«СДАН» ИНАЧЕ «НЕ СДАН»

КОНЕЦ КАК РезЭкзамена,

Фамилия, Имя, Отчество, прописка, Nпаспорта, серия паспорта, телефон, Nсвидетельства

ИЗ Пересдачи ЛЕВОЕ СОЕДИНЕНИЕ ИнформацияОКлиентах ПО Пересдачи.Клиент_ID = ИнформацияОКлиентах.ID_Клиента ЛЕВОЕ СОЕДИНЕНИЕ Экзамены ПО Пересдачи.Клиент_ID = Экзамены.Клиент_ID И Пересдачи.ДатаПЭкзамена = Экзамены.ДатаЭКзамена И Пересдачи.ТипЭкзамена = Экзамены.ТипЭкзамена И Пересдачи.ВидЭкзамена = Экзамены.ВидЭкзамена

СОРТИРОВАТЬ ПО

ТипЭкзамена, РезЭкзамена,

Фамилия, Имя, Отчество

}

КОНЕЦЕСЛИ;

КОНЕЦ

@КОНЕЦ СПЕЦИФИКАЦИИ ПРОЦЕССА

9) Спецификация процесса 1.3.4 «Внесение информации о свидетельствах об окончании обучения»

@ВХОД = Список допущенных до экзамена в ГАИ

@ВЫХОД = Номера свидетельств для клиентов

@ВЫХОД = Свидетельство об окончании обучения

@СПЕЦИФИКАЦИЯ ПРОЦЕССА

ВЫПОЛНИТЬ

«Из списка допущенных до экзамена выбираются клиенты, у которых нет свидетельства и помещаются в таблицу НовыеСвидетельства». Последний максимальный номер свидетельства хранится в системе.»

Для каждого Стр из НовыеСвидетельства Цикл

$МаксЗнСвидетельства = $МаксЗнСвидетельства + 1;

ВСТАВИТЬ В КЛИЕНТЫ (NСвидетельства) ЗАНЧЕНИЯ($МаксЗнСвидетельства) ГДЕ ID_Клиента = Стр.ID_ Клиента

КонецЦикла;

«После заполнения номеров свидетельств – свидетельства распечатываются.»

КОНЕЦ

@КОНЕЦ СПЕЦИФИКАЦИИ ПРОЦЕССА

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]