Файл: Автоматизация учета арендованных средств для компании ООО “АрендаЗем”.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 01.04.2023

Просмотров: 78

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Введение

1 Технико-экономическая характеристика предметной области и предприятия.

1.1 Характеристика предприятия и его деятельности.

1.2 Организационная структура управления предприятием

1.3 Выбор комплекса задач автоматизации и характеристика существующих бизнес процессов

2 Информационное обеспечение задачи

2.1 Информационная модель и её описание.

2.2 Используемые классификаторы и системы кодирования

2.3 Характеристика нормативно-справочной, входной и оперативной информации

2.4 Характеристика результатной информации

3. Программное обеспечение задачи

3.1 Общие положения (дерево функций и сценарий диалога)

3.2 Характеристика базы данных

3.3 Структурная схема пакета (дерево вызова программных модулей)

3.4 Описание программных модулей

4 Контрольный пример реализации и его описание

Заключение

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

Для классификатора компания. Используется разрядная система кодирования. Классификатор является общесистемным и состоит из двух знаков. Структурная формула классификатора заказов:

Ф1 = [ХХ];

Для классификатора участок используется разрядная система кодирования. Классификатор является общесистемным и состоит из двух знаков. Структурная формула классификатора магазинов:

Ф2 = [ХХ];

2.3 Характеристика нормативно-справочной, входной и оперативной информации

Входные данные, берутся из СУБД, которые может дополнить менеджер или сотрудник компании, в их перечень входят:

  • Информация о клиенте
  • Информация об участке
  • Информация о свободных участках
  • Дата оплаты аренды

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

Входная информация хранится в справочниках:

Справочник “Компании” имеет следующие поля:

  • Телефон
  • Наименование
  • Код компании

Справочник “Участки” имеет поля:

  • Номер_участка
  • Квадратная_площадь
  • Цена_за_месяц
  • Код_компании
  • Дата_оплаты
  • Статус
  • Комментарий
  • Номер_договора

Всеми справочниками пользуются администраторы информационной системы, средний объем справочников от 50 записей, актуализация справочников 1-2 раза в месяц или по необходимости.

2.4 Характеристика результатной информации

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

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

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


Поля “Код” и “Код_компании”, являются служебными, поле “Код” из таблицы “Участки” никак не используются. В дальнейшем при усовершенствовании информационной системы, может быть применено. В “Код_компании” будут вставляется значения из таблицы “Компании” и будет служить идентификатором принадлежности участка.

В базе данных, не реализована связь таблиц, ее реализация осуществлена в информационной системе, по принципу 1:М.

3. Программное обеспечение задачи

3.1 Общие положения (дерево функций и сценарий диалога)

В проекте курсовой работы, реализовано меню, в котором два поля, которые отображают информацию из таблиц(илюст 1). У каждого информационного поля есть “кнопки” отвечающие за редактирование таблиц. Информационное поле 1, отображает таблицу “Компании”, с помощью “кнопок”, редактируются информация. Так же и во втором информационном поле, только редактирование производится для таблицы “Участок”.

Иллюстрация 1

Иллюстрация 2

Таблицу “Компании” в данной информационной системе, можно редактировать по средствам “кнопок”:

Обновить – данная кнопка отвечает за обновление таблицы в информационном поле 1.

Добавить – при нажатии на данную кнопку, открывается окно, в котором два поля: “Компания” и “Телефон”. После заполнения полей есть две кнопки “ОК” и “Отмена”. При нажатии на “ОК”, информация сохраняется и добавляется в таблицу, а окно закрывается, при нажатии “Отмена”, окно просто закрывается.

Удалить – отвечает за удаление выбранной строки.

Редактировать – открывает окно, такое же как при добавить, поля уже заполнены, в них можно внести изменения и нажать “ОК”, чтобы сохранить. “Отмена” закрывает окно без изменений.

Таблица “Участки”, которая в информационном поле 2, имеет меньший функционал в сравнении с переводящей таблицей.

Кнопка “Добавить” имеет схожий алгоритм работы, что и кнопка под первой информационной таблицей, при нажатии на данную кнопку, откроется окно, только в нем будут не все столбцы для заполнения, а только часть: Номер участка, Площадь, Цена. Данное решение предусматривает то, что новый участок, арендатор не будет сразу вводить в эксплантацию и участок будет автоматически присвоен к “свободным” участкам.


Кнопка “Редактировать” так же открывает новое окно и позволяет редактировать не все столбцы таблицы, а только дату оплаты, комментарий.

3.2 Характеристика базы данных

В базе данных будет две таблицы, ключевые поля не будут устанавливается, их роль будет выполнятся в информационной системе. В таблице “Компании” будет всего три поля, где “Код” служебное поле для идентификации в таблице “Участки”. Описание структуры таблицы “Компании” отображено в таблице 3.

Таблица 3

Имя поля

Тип данных

Длина поля

Компания

Короткий текст

30

Код

Счетчик

Телефон

Короткий текст

12

Описание структуры таблицы “Участки” отображено в таблице 4. Поля “Код” и “Код_компании”, являются служебными, поле “Код” из таблицы “Участки” никак не используются. В дальнейшем при усовершенствовании информационной системы, может быть применено. В “Код_компании” будут вставляется значения из таблицы “Компании” и будет служить идентификатором принадлежности участка.

Таблица 4

Имя поля

Тип данных

Длина поля

Код

Счетчик

Номер_участка

Короткий текст

5

Квадратная_площадь

Короткий текст

6

Цена_за_месяц

Числовой

12

Код_компании

Числовой

Дата_оплаты

Короткий текст

10

Статус

Короткий текст

10

Комментарий

Короткий текст

60

Номер_договора

Короткий текст

6

В базе данных, не реализована связь таблиц, ее реализация осуществлена в информационной системе, по принципу 1:М. Схема отображена на рисунке 1.

Рис.6


3.3 Структурная схема пакета (дерево вызова программных модулей)

Дерево программных модулей отображает структурную схему информационной модели:

  • Главный модуль (Main), отвечает за импорт библиотек и формирование диалоговых окон.
  • Модуль Form1 главный модуль, отвечающий за импорт информации из базы данных, он же является главным диалоговым окном, в котором описаны основные функции обработки информации.
  • Модуль Form 2,3,4 – это вспомогательные диалоговые окна, предназначенные для ввода данных и обновления базы данных актуальной информацией.

Рис.7 Дерево вызова процедур и функций.

3.4 Описание программных модулей

Модуль описывает заполнение информационного поля 1 и 2, по средствам публичной функции conn. В этой же функции отключаем отображение служебного столбца “Код”.

Imports System.Data.OleDb

Module Module1

Public conn As OleDbConnection

Public Sub FillhGrid(ByVal Grid1 As DataGridView, cmd As String, TabeleName As String)

Dim c As New OleDbCommand

c.Connection = conn

c.CommandText = cmd

Dim ds As New DataSet

Dim da As New OleDbDataAdapter(c)

da.Fill(ds, TabeleName)

Grid1.DataSource = ds

Grid1.DataMember = TabeleName

Grid1.Columns("Код").Visible = False

End Sub

End Module

Модуль 1

Форма является пользовательским интерфейсом Windows, то с чем будет работать пользователь. В данной форме, подключена база данных, объявлены “кнопки” и информационные поля. Для оптимизации информационной системы, все обрабатывается на самих “кнопках” с помощью временных переменных.

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

Imports System.Data.OleDb

Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

RefreshGrid()

End Sub

Public Sub RefreshGrid()

FillhGrid(Grid1, "Select * from Компании", "Компании")

End Sub

Private Sub Grid1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles Grid1.CellContentClick

RefreshGrid2()

End Sub

Private Sub RefreshGrid2()

Dim k As Integer

k = Grid1.CurrentRow.Cells("Код").Value

FillhGrid(Grid2, "Select * from Участок where Код_компании =" & k, "Компании")

Grid2.Columns("Код_компании").Visible = False

End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

conn = New OleDbConnection

conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Проект\DB.accdb;Persist Security Info=False;"

conn.Open()

End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click


Form2.ShowDialog()

Dim name, tel As String

Dim r As DialogResult

name = Form2.TextBox1.Text

tel = Form2.TextBox2.Text

r = Form2.DialogResult

Form2.Close()

If r <> DialogResult.OK Then

Exit Sub

End If

Dim c As New OleDbCommand

c.Connection = conn

c.CommandText = "insert into Компании(Компания,Телефон) values('" & name & "' , '" & tel & "')"

c.ExecuteNonQuery()

RefreshGrid()

End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

Dim k As Integer

Dim c As New OleDbCommand

c.Connection = conn

k = Grid1.CurrentRow.Cells("Код").Value

c.CommandText = "delete from Компании where Код = " & k

c.ExecuteNonQuery()

RefreshGrid()

End Sub

Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click

Form4.TextBox1.Text = Grid2.CurrentRow.Cells("Дата_оплаты").Value

Form4.TextBox2.Text = Grid2.CurrentRow.Cells("Статус").Value

Form4.TextBox3.Text = Grid2.CurrentRow.Cells("Комментарий").Value

Form4.ShowDialog()

Dim stat, dat, kom As String

Dim k As Integer

k = Grid2.CurrentRow.Cells("Код").Value

Dim r As DialogResult

dat = Form4.TextBox1.Text

stat = Form4.TextBox2.Text

kom = Form4.TextBox3.Text

r = Form4.DialogResult

Form3.Close()

If r <> DialogResult.OK Then

Exit Sub

End If

Dim c As New OleDbCommand

c.Connection = conn

c.CommandText = "update Участок set Дата_оплаты='" & dat & "', Статус='" & stat & "', Комментарий='" & kom & "' where Код =" & k

c.ExecuteNonQuery()

RefreshGrid2()

End Sub

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click

Form3.ShowDialog()

Dim nom, kv, cen As String

Dim r As DialogResult

nom = Form3.TextBox1.Text

kv = Form3.TextBox2.Text

cen = Form3.TextBox3.Text

r = Form3.DialogResult

Form3.Close()

If r <> DialogResult.OK Then

Exit Sub

End If

Dim c As New OleDbCommand

c.Connection = conn

c.CommandText = "insert into Участок(Номер_участка,Квадратная_площадь,Цена_за_месяц,Код_компании) values('" & nom & "' , '" & kv & "', '" & cen & "', '" & 1 & "')"

c.ExecuteNonQuery()

RefreshGrid()

End Sub

Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click

Form2.TextBox1.Text = Grid1.CurrentRow.Cells("Компания").Value

Form2.TextBox2.Text = Grid1.CurrentRow.Cells("Телефон").Value

Form2.ShowDialog()

Dim name, tel As String

Dim r As DialogResult

Dim k As Integer

k = Grid1.CurrentRow.Cells("Код").Value

name = Form2.TextBox1.Text

tel = Form2.TextBox2.Text

r = Form2.DialogResult

Form2.Close()

If r <> DialogResult.OK Then

Exit Sub

End If

Dim c As New OleDbCommand

c.Connection = conn

c.CommandText = "update Компании set Компания='" & name & "', Телефон='" & tel & "' where Код =" & k

RefreshGrid()

End Sub

Private Sub Button4_Click(sender As Object, e As EventArgs)

End Sub

End Class

Форма 1

Формы 2,3,4 схожи и ничем не отличаются, во всех формах описывается выход из них, так же добавлена возможно выхода или подтверждения через клавиши “Enter” и “Esc”.

Private Sub Form4_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Me.AcceptButton = Button1

Me.CancelButton = Button2

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Me.DialogResult = DialogResult.OK

Me.Close()

End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

Me.DialogResult = DialogResult.Cancel

Me.Close()

End Sub