Файл: Автоматизация учета арендованных средств для компании ООО “АрендаЗем”.pdf
Добавлен: 01.04.2023
Просмотров: 77
Скачиваний: 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 Описание программных модулей
Для классификатора компания. Используется разрядная система кодирования. Классификатор является общесистемным и состоит из двух знаков. Структурная формула классификатора заказов:
Ф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. Поля “Код” и “Код_компании”, являются служебными, поле “Код” из таблицы “Участки” никак не используются. В дальнейшем при усовершенствовании информационной системы, может быть применено. В “Код_компании” будут вставляется значения из таблицы “Компании” и будет служить идентификатором принадлежности участка.
Имя поля |
Тип данных |
Длина поля |
Код |
Счетчик |
|
Номер_участка |
Короткий текст |
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