Разработка приложения «Коммунальные платежи»
Автор работы: Пользователь скрыл имя, 04 Мая 2014 в 18:06, курсовая работа
Краткое описание
Приложение разработано в среде Visual Studio 2012.
Введение содержит описание цели и задач курсового проекта. Во введении дается краткий анализ возможных методов решения поставленной задачи и основные этапы ее решения.
В основной части приводятся: описание таблиц базы данных; структурная схема приложения; описание последовательности создания приложения; руководство для пользователя приложения.
Содержание
ВВЕДЕНИЕ 5
1. ПОСТАНОВКА ЗАДАЧИ 7
2. СОЗДАНИЕ БАЗЫ ДАННЫХ 8
3. СОЗДАНИЕ ПРИЛОЖЕНИЯ 10
3.1. Подключение к базе данных 10
3.2. Структурная схема пакета 11
3.3. Создание интерфейса и написание программного кода приложения 13
3.4. Создание исполняемого файла приложения 24
4. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 26
ЗАКЛЮЧЕНИЕ 31
СПИСОК ЛИТЕРАТУРЫ 32
ПРИЛОЖЕНИЯ 33
Вложенные файлы: 1 файл
Курсовой проект.docx
— 851.85 Кб (Скачать файл)Рисунок 26 - Формирование списка показателей счетчиков
Для ввода тарифов предназначена кнопка «Тарифы». Необходимо выбрать из раскрывающегося списка наименование услуги, затем единицы измерения и ввести стоимость единицы. После ввода необходимо нажать на кнопку Записать (рис. 27).
Рисунок 27 - Ввод тарифов
Для ввода услуг предназначена кнопка «Услуги». Необходимо ввести наименование услуги и единицы измерения. После ввода необходимо нажать на кнопку Записать (рис. 28).
Рисунок 28 - Ввод услуг
Для ввода долгов используется кнопка «Долги». Необходимо выбрать из раскрывающегося списка фамилию должника, ввести величину долга и выбрать дату начисления процентов. После ввода необходимо нажать на кнопку Рассчитать (рис. 29).
Рисунок 29 - Ввод долга
Результатом работы приложения является формирование таблицы Платежи (рис. 30).
Рисунок 30 - Формирование сводной таблицы Платежи
При нажатии кнопки «Рассчитать счетчики» программа считает сколько начислено к оплате по каждому клиенту. А при нажатии кнопки «Рассчитать платежи» программа суммирует долг клиента и начисленную сумму за месяц.
При нажатии кнопки «Отчет» открывается новая форма на которой формируется отчет (рис. 31).
Рисунок 31 - Формирование отчета
ЗАКЛЮЧЕНИЕ
В данном курсовом проекте была разработана база данных коммунальных платежей и приложение к ней.
Проект выполнен в среде Visual Studio 2012 в соответствии с требованиями курсового проекта. Техническое исполнение проекта соответствует требованиям.
В ходе выполнения работы были приобретены практические навыки по созданию приложений автоматизированного сбора и обработки данных, информации.
Были реализованы следующие функции:
- добавление, редактирование записей базы;
- осуществление поиска, сортировки данных;
- создание запросов;
- процедура формирования отчетов.
В результате работы с Visual Studio 2012 были закреплены навыки написания запросов SQL.
Все эти возможности хорошо сочетаются с простым и понятным интерфейсом, что немаловажно для человека, работающего с базой данных, который не является специалистом в данной области.
СПИСОК ЛИТЕРАТУРЫ
- Майо Дж. Самоучитель Microsoft Visual Studio 2010. – СПб.: БХВ-Петербург, 2011.- 464 с.
- Кузьменко В.Г. Базы данных в Visual Basic и VBA. Самоучитель. 2-е изд., стереотипное. – М.: ООО «Бином-Пресс», 2007, – 416 с.
- http://msdn.microsoft.com/
Приложение 1
Код формы Form1.vb
Public Class Form1
'Кнопка Клиенты
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Form2.ShowDialog()
End Sub
'Кнопка Показания счетчиков
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Form3.ShowDialog()
End Sub
'Кнопка Тарифы
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Form4.ShowDialog()
End Sub
'Кнопка Платежи
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Form5.ShowDialog()
End Sub
'Кнопка Услуги
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Form6.ShowDialog()
End Sub
'Кнопка Долги
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
Form7.ShowDialog()
End Sub
End Class
Приложение 2
Код формы Form2.vb
Public Class Form2
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet1.Клиенты". При необходимости она может быть перемещена или удалена.
Me.КлиентыTableAdapter1.Fill(Me.КомПлатDataSet1.Клиенты)
End Sub
'Кнопка Записать
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Me.КлиентыTableAdapter1.Insert(TextBox6.Text,
TextBox7.Text, TextBox8.Text, TextBox9.Text, TextBox10.Text)
Me.КлиентыTableAdapter1.Fill(Me.КомПлатDataSet1.Клиенты)
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox9.Text = ""
TextBox10.Text = ""
Me.КлиентыTableAdapter1.Update(Me.КомПлатDataSet1.Клиенты)
End Sub
'Кнопка Закрыть
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Me.DialogResult = DialogResult.OK
End Sub
End Class
Приложение 3
Код формы Form3.vb
Public Class Form3
Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: данная строка
кода позволяет загрузить данные
в таблицу "КомПлатDataSet.Клиенты".
При необходимости она может быть перемещена
или удалена.
Me.КлиентыTableAdapter.Fill(Me.КомПлатDataSet.Клиенты)
'TODO: данная строка
кода позволяет загрузить данные
в таблицу "КомПлатDataSet.ПоказанияСчетчиков".
При необходимости она может быть перемещена
или удалена.
Me.ПоказанияСчетчиковTableAdapter.Fill(Me.КомПлатDataSet.ПоказанияСчетчиков)
End Sub
'Кнопка Записать
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
mes = Month(Now)
god = Year(Now)
Me.ПоказанияСчетчиковTableAdapter.Insert(ComboBox1.Text,
TextBox1.Text, TextBox3.Text, TextBox2.Text, TextBox4.Text, mes, god)
Me.ПоказанияСчетчиковTableAdapter.Fill(Me.КомПлатDataSet.ПоказанияСчетчиков)
ComboBox1.Text = ""
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
Me.ПоказанияСчетчиковTableAdapter.Update(Me.КомПлатDataSet.ПоказанияСчетчиков)
End Sub
'Кнопка Закрыть
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Me.DialogResult = DialogResult.OK
End Sub
End Class
Приложение 4
Код формы Form4.vb
Public Class Form4
Private Sub Form4_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: данная строка
кода позволяет загрузить данные
в таблицу "КомПлатDataSet.Виды_услуг".
При необходимости она может быть перемещена
или удалена.
Me.Виды_услугTableAdapter.Fill(Me.КомПлатDataSet.Виды_услуг)
'TODO: данная строка
кода позволяет загрузить данные
в таблицу "КомПлатDataSet.Тарифы".
При необходимости она может быть перемещена
или удалена.
Me.ТарифыTableAdapter.Fill(Me.КомПлатDataSet.Тарифы)
End Sub
'Кнопка Записать
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
mes = Month(Now)
god = Year(Now)
Me.ТарифыTableAdapter.Insert(ComboBox1.Text,
ComboBox2.Text, TextBox1.Text, mes, god)
Me.ТарифыTableAdapter.Fill(Me.КомПлатDataSet.Тарифы)
ComboBox1.Text = ""
ComboBox2.Text = ""
TextBox1.Text = ""
Me.ТарифыTableAdapter.Update(Me.КомПлатDataSet.Тарифы)
End Sub
'Кнопка Закрыть
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Me.DialogResult = DialogResult.OK
End Sub
End Class
Приложение 5
Код формы Form5.vb
Imports System.Data.OleDb
Public Class Form5
Private Sub Form5_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet3.Тарифы". При необходимости она может быть перемещена или удалена.
Me.ТарифыTableAdapter2.Fill(Me.КомПлатDataSet3.Тарифы)
'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet2.Таблица1". При необходимости она может быть перемещена или удалена.
Me.Таблица1TableAdapter.Fill(Me.КомПлатDataSet2.Таблица1)
'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet1.Тарифы". При необходимости она может быть перемещена или удалена.
Me.ТарифыTableAdapter1.Fill(Me.КомПлатDataSet1.Тарифы)
'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet.Тарифы". При необходимости она может быть перемещена или удалена.
Me.ТарифыTableAdapter.Fill(Me.КомПлатDataSet.Тарифы)
'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet.Платежи". При необходимости она может быть перемещена или удалена.
Me.ПлатежиTableAdapter.Fill(Me.КомПлатDataSet.Платежи)
Try
Me.ТарифыTableAdapter.FillBy(Me.КомПлатDataSet.Тарифы)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
Try
Me.ТарифыTableAdapter1.Electro(Me.КомПлатDataSet1.Тарифы)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
Try
Me.ТарифыTableAdapter2.TBOQuerry(Me.КомПлатDataSet3.Тарифы)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub
'Кнопка Рассчитать
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
ExesSQL("DELETE * FROM Платежи", conn)
mes = Month(Now)
god = Year(Now)
Dim familia As New OleDb.OleDbCommand("SELECT Клиенты.Фамилия,
Долг.Всего, Таблица1.К_Оплате FROM Клиенты,
Долг, Таблица1 WHERE Клиенты.Фамилия=Долг.Фамилия
AND Таблица1.Фамилия=Клиенты.Фамилия", conn)
conn.Open()
Dim reader As OleDbDataReader = familia.ExecuteReader()
While reader.Read
Me.ПлатежиTableAdapter.Insert(reader.GetValue(0),
reader.GetValue(1), reader.GetValue(2) + reader.GetValue(1), mes, god)
End While
Me.ПлатежиTableAdapter.Fill(Me.КомПлатDataSet.Платежи)
reader.Close()
conn.Close()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
ExesSQL("DELETE * FROM Таблица1", conn)
'Кнопка Посчитать Счетчики
Dim shitchik As New OleDb.OleDbCommand("SELECT ПоказанияСчетчиков.*,
Клиенты.Количество_жильцов FROM ПоказанияСчетчиков,
Клиенты WHERE ПоказанияСчетчиков.Фамилия=Клиенты.Фамилия", conn)
conn.Open()
Dim reader As OleDbDataReader = shitchik.ExecuteReader()
While reader.Read
fam = reader.GetValue(1)
elekt = reader.GetValue(2)
elekt1 = reader.GetValue(3)
voda = reader.GetValue(4)
voda1 = reader.GetValue(5)
mes = reader.GetValue(6)
tbo = reader.GetValue(8) * ComboBox3.Text
If MonthName(mes) = ComboBox4.Text Then
sch_el = (elekt1 - elekt) * ComboBox1.Text
sch_vod = (voda1 - voda) * ComboBox2.Text
k_vid = (sch_el) + (sch_vod) + tbo
Me.Таблица1TableAdapter.Insert(fam, sch_el,
sch_vod, tbo, k_vid)
End If
End While
Me.Таблица1TableAdapter.Fill(Me.КомПлатDataSet2.Таблица1)
reader.Close()
conn.Close()
Dim shitchik1 As New OleDb.OleDbCommand("SELECT SUM(Электричество), SUM(Вода), SUM(ТБО), SUM(К_оплате) FROM Таблица1", conn)
conn.Open()
Dim reader1 As OleDbDataReader = shitchik1.ExecuteReader()
While reader1.Read
TextBox5.Text = reader1.GetValue(0)
TextBox4.Text = reader1.GetValue(1)
TextBox3.Text = reader1.GetValue(2)
TextBox2.Text = reader1.GetValue(3)
End While
reader1.Close()
conn.Close()
End Sub
End Class
Приложение 6
Код формы Form6.vb
Public Class Form6
Private Sub Form6_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet.Виды_услуг". При необходимости она может быть перемещена или удалена.
Me.Виды_услугTableAdapter.Fill(Me.КомПлатDataSet.Виды_услуг)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Me.Виды_услугTableAdapter.Insert(TextBox1.Text,
TextBox2.Text)
Me.Виды_услугTableAdapter.Fill(Me.КомПлатDataSet.Виды_услуг)
TextBox1.Text = ""
TextBox2.Text = ""
Me.Виды_услугTableAdapter.Update(Me.КомПлатDataSet.Виды_услуг)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Me.DialogResult = DialogResult.OK
End Sub
End Class
Приложение 7
Код формы Form7.vb
Imports System.Data.OleDb
Public Class Form7
Private Sub Form7_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet.Долг". При необходимости она может быть перемещена или удалена.
Me.ДолгTableAdapter.Fill(Me.КомПлатDataSet.Долг)
'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet.Клиенты". При необходимости она может быть перемещена или удалена.
Me.КлиентыTableAdapter.Fill(Me.КомПлатDataSet.Клиенты)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'Кнопка Долг
Dim today As Date
today = DateTimePicker1.Text
col_day1
= Microsoft.VisualBasic.DateAndTime.Day(Now)
col_day
= Microsoft.VisualBasic.DateAndTime.Day(today)
col_day2 = DateDiff(DateInterval.Day, today, Now)
peny = (TextBox1.Text / 100) * col_day2
vsego = TextBox1.Text + peny
Dim dolg1 As New OleDb.OleDbCommand("SELECT Долг.* FROM Долг", conn)
conn.Open()
Me.ДолгTableAdapter.Insert(ComboBox1.Text, TextBox1.Text,
peny, vsego)
conn.Close()
Me.ДолгTableAdapter.Fill(Me.КомПлатDataSet.Долг)
Me.ДолгTableAdapter.Update(Me.КомПлатDataSet.Долг)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Me.DialogResult = DialogResult.OK
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
ExesSQL("DELETE * FROM Долг", conn)
End Sub
End Class
Приложение 8
Код формы Form8.vb
Public Class Form8
Private Sub Form8_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet2.Таблица1". При необходимости она может быть перемещена или удалена.
Me.Таблица1TableAdapter.Fill(Me.КомПлатDataSet2.Таблица1)
Me.ReportViewer1.RefreshReport()
End Sub
End Class