Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Variant_9_-_novyy_18 (1) (1).doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
255.49 Кб
Скачать

4. Выбор средства реализации

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

При работе с данными информация об объектах хранится в отдельных таблицах, между которыми устанавливаются связи.

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

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

Совокупность всех форм составляет интерфейс программы.

5. Разработка базы данных

База данных состоит из трех таблиц: счет, проводки, обязательства.

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

Имя поля

Тип поля

№ счета

Счетчик

Сумма (погашено)

Денежный

Вид

Текстовый

Поле «Вид» может принимать два значения: просрочен, срочный.

Таблица «Обязательства» содержит всю информацию об обязательствах на погашение. Ниже приведены ее поля и их типы.

Имя поля

Тип поля

№ обязательства

Счетчик

№ счета

(кредита или просрочки)

Числовой

Сумма кредита

Денежный

Сумма к погашению

Денежный

Дата открытия

Дата/время

Дата погашения

Дата/время

Вид

Текстовый

Проведено

Логический

«Сумма кредита» – сумма выданной заемщику денежной ссуды.

«Сумма к погашению» – сумма, которую заемщику осталось погасить.

«Вид» – вид обязательства, может принимать два значения: срочный, просрочен.

«Проведено» - поле логического типа, означает, проведено ли обязательство на просрочку или нет.

Поля таблиц «Счет» и «Обязательства» заполняются при оформлении кредитного договора банковским работником.

Таблица «Проводки» содержит информацию о сделанных проводках. Ниже приведены поля таблицы и их типы.

Имя поля

Тип поля

№ проводки

Счетчик

№ обязательства

Числовой

Дата проводки

Дата/время

«№ обязательства» - номер проведенного обязательства.

«Дата проводки» - дата проведения срочного обязательства на просрочку.

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

Схема данных

Из схемы данных видно, что в базе данных созданы две связи между таблицами.

Связь «[Счет]!номер – [Обязательства]!номерОб» имеет тип «один к многим» и показывает, что номер счета может быть один, а обязательство по погашению, соответствующее ему, может быть не единственным, т.е. заемщик может брать не одну ссуду.

Связь «[Обязательства]!номерОб – [Проводки]!номерПр» имеет тип «один к одному» и показывает, что обязательству данного вида соответствует один номер проводки.

Поле «номерПр» таблицы «Проводки» содержит номер проводки, поле «номер Об» таблицы «Обязательства» содержит номер обязательства и поле «номер» таблицы «Счет» содержит номер счета. Эти поля являются ключевыми, их значения не могут повторяться.

В базе данных используются запросы:

1. «Выбранный счет» – запрос на выборку

SELECT счет.сумма

FROM счет INNER JOIN обязательства ON счет.номер = обязательства.номерСч

WHERE (((обязательства.номерОб)=[Forms]![Проведение]![НомерОб]));

Данный запрос согласно выбранному номеру обязательства в форме «Проведение» выдает соответствующий номер счета из таблицы «Счет».

2. «Добавление обязательства» – запрос на добавление

INSERT INTO обязательства ( номерСч, сум1, сум2, дата1, дата2, вид )

SELECT обязательства.номерСч, обязательства.сум1, [сум2]-[Выбранный счет]!сумма+([сум1]*Forms!Проведение!Пеня*(CDate(Forms!Проведение!ДатаПог)-[дата2])/365)/100 AS Кпогаш, обязательства.дата1, CDate(Forms!Проведение!ДатаПог) AS ДатПог, "просрочен" AS Выражение1

FROM обязательства, [Выбранный счет]

WHERE (((обязательства.номерОб)=[Forms]![Проведение]![НомерОб]));

Данный запрос добавляет строку с новым обязательством в таблицу «Обязательства». Номер счета, сумма1 и дата1 переносятся из обрабатываемого обязательства, сумма2 считается по формуле (см. анализ технического задания, начисление процентной суммы), дата2 берется из формы «Проведение».

3. «Добавление проводки» - запрос на добавление

INSERT INTO проводки ( номерОб, датаПр )

SELECT обязательства.номерОб, обязательства.дата2

FROM обязательства

WHERE (((обязательства.номерОб)=[Forms]![Проведение]![НомерОб]));

Данный запрос добавляет новую строку в таблицу «Проводки» с датой проведения и номером обрабатываемого обязательства.

4. «Номер об» - запрос на выборку

SELECT обязательства.номерОб

FROM обязательства

WHERE (((обязательства.дата2)=CDate([Forms]![Главная]![ДатаТек])-1) AND ((обязательства.проведен)=0));

Данный запрос выводит номер просроченного непроведенного обязательства.

5. «Обязательства и счета» - запрос на выборку

SELECT обязательства.номерОб, обязательства.номерСч, обязательства.сум1, обязательства.сум2, обязательства.дата1, обязательства.дата2, обязательства.вид AS обязательства_вид, обязательства.проведен, счет.номер, счет.сумма, счет.вид AS счет_вид

FROM счет INNER JOIN обязательства ON счет.номер = обязательства.номерСч;

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

6. «Проведение обязательства» - запрос на обновление

UPDATE обязательства SET обязательства.проведен = 1

WHERE (((обязательства.номерОб)=[Forms]![Проведение]![НомерОб]));

Данный запрос изменяет тип обрабатываемого обязательства со «срочный» на «просрочен».

7. «Проведение счета» – запрос на обновление

UPDATE счет INNER JOIN обязательства ON счет.номер = обязательства.номерСч SET счет.вид = "просрочен"

WHERE (((обязательства.номерОб)=[Forms]![Проведение]![НомерОб]));

Данный запрос изменяет тип счета со «срочный» на «просрочен».

8. «Проводки сегодня» - запрос на выборку

SELECT проводки.номерПр, проводки.номерОб, проводки.датаПр

FROM проводки

WHERE (((проводки.датаПр)=[Forms]![Главная]![ДатаТек]));

Данный запрос выводит все проводки на текущую дату.

9. «Просроченные обязательства» - запрос на выборку

SELECT обязательства.номерОб, обязательства.номерСч, обязательства.сум1, обязательства.сум2, обязательства.дата1, обязательства.дата2, обязательства.вид, обязательства.проведен

FROM обязательства

WHERE (((обязательства.дата2)=CDate([Forms]![Главная]![ДатаТек])-1));

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

В базе данных используются формы:

1. «Главная». Выводится при запуске программы, на форме вводится текущая дата.

2. «Просроченные обязательства». Выводится по нажатию кнопки «Просроченные обязательства». Для формирования выводимых данных использует запрос «Просроченные обязательства».

3. «Проведение». Для формирования данных в поле «Просроченные обязательства» использует запрос «Номер об», имеет поля для ввода «Процент просрочки» и «Дата погашения» просроченного обязательства. При нажатии на кнопку «Провести» выполняется следующий программный код (вызов запросов):

'проведение счета

stDocName = «проведение Счета»

DoCmd.OpenQuery stDocName, acNormal, acEdit

'добавление проводки

stDocName = "Добавление проводки"

DoCmd.OpenQuery stDocName, acNormal, acEdit

'добавление обязательства

stDocName = "Добавление Обязательства"

DoCmd.OpenQuery stDocName, acNormal, acEdit

'проведение обязательства

stDocName = "проведение Обязательства"

DoCmd.OpenQuery stDocName, acNormal, acEdit

В базе данных используются отчеты:

1. Отчет «По проводкам» берет данные из таблицы «Проводки».

2. Отчет «Проводки на сегодня» использует запрос «Проводки сегодня».

3. Отчет «По счетам» использует запрос «Обязательства и счета».

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