ВВЕДЕНИЕ
Цель выполнения курсового проектирования – закрепление навыков по разработке программ в среде Microsoft Visual Studio с использованием языка Visual C# и проработка комплекса вопросов, решаемых в технологической цепочке создания прикладного программного обеспечения информационных систем.
Общее задание состоит в том, чтобы выполнить работы по созданию диалогового приложения Windows Forms в среде Microsoft Visual Studio, текстовой документации.
Тематика курсового проекта включает в себя разработку программы для учета материальных ценностей на предприятии.
ПОСТАНОВКА ЗАДАЧИ И ИСХОДНЫЕ ДАННЫЕ
Общая задача заключается в разработке прикладной программы для сопровождения базы данных (БД), содержащей заданные сведения.
Частная задача – разработка прикладной программы для учета материальных ценностей на предприятии, а также закрепление практических навыков программирования в среде Visual Studio 2013 C#.
Задачи курсовой работы:
Изучить основные методы разработки работы с базой данных в среде Visual Studio 2013 C#;
Разработать алгоритм решения задачи;
Осуществить программную реализацию и протестировать разработанное приложение.
Функции программы:
вывод меню функций, выполняемых программой;
ввод, просмотр, редактирование данных в БД, содержащей две взаимосвязанные таблицы;
дополнение БД, удаление данных из БД;
отбор (фильтрация) данных по условию, задаваемому пользователем;
сортировка данных по двум полям;
формирование двух отчётов по данным из БД (с группировкой по наименованию, по месяцам и годам с вычислением итоговых сумм), которые могут быть выведены на принтер;
построение на основе информации из БД двух графиков (полигон);
вывод формы со сведениями о программе.
Вывод меню функций программы реализованы с помощью элемента программы Tabcontrol (закладки) и элементаButton (кнопки).
Отбор (фильтрация) данных будет осуществляться по месяцу, приходу за месяц и расходу за месяц.
Сортировка данных будет осуществляться в порядке возрастания и убывания по названию наименованию номенклатуры и по номеру номенклатуры.
Отчеты будут формироваться с группировкой по месяцам, годам и по наименованию номенклатуры.
Графики будут строиться по месяцам по остатку материальных ценностей и по годам по расходу и приходу материальных ценностей. Вид графиков – полигон.
Также будет реализован вывод формы с информацией о программе.
СОСТАВ И СТРУКТУРА ДАННЫХ
Для реализации работы с данными в проекте была выбрана система управления базами данных (СУБД) MS Access 2003. Access является настольной СУБД реляционного типа. В проекте используются две взаимосвязанные таблицы.
Структура БД представлена на рисунке 2.1.
Рисунок 2.1 – Структура таблиц БД
Описание структуры таблиц и ограничений целостности представлены в таблицах 2.1 – 2.2.
Таблица 2.1 – Описание структуры таблицы Мат_ценности
Мат_ценности |
|||||
Имя поля |
Назначение поля |
Тип |
Длина (байт) |
Свойства поля |
|
Ключ |
Обязательное |
||||
Номенклатурный_номер |
Счетчик |
4 |
* |
+ |
|
Наименование |
Наименование номенклатуры материальных ценностей |
Текстовый |
80 |
+ |
|
Ед_изм |
Единица измерения |
Текстовый |
20 |
+ |
Таблица 2.2 – Описание структуры таблицы Журнал_учета
Жкрнал_учета |
||||||
Имя поля |
Назначение поля |
Тип |
Длина (байт) |
Свойства поля |
||
Ключ |
Обязательное |
Примечание |
||||
Номер |
Название фирмы |
Числовой |
4 |
+ |
Подстановка из таблицы «Мат_ценности» |
|
Год |
Год поступления материальных ценностей |
Текстовый |
4 |
+ |
||
Месяц |
Месяц поступления материальных ценностей |
Текстовый |
20 |
+ |
||
Остаток_на_начало_года |
Остаток материальных ценностей на начало года |
Денежный |
6 |
+ |
>0 |
|
Приход_за_месяц |
Приход за месяц материальных ценностей |
Денежный |
6 |
+ |
>0 |
|
Расход_за_месяц |
Расход за месяц материальных ценностей |
Денежный |
6 |
+ |
>0 |
МЕТОДЫ И АЛГОРИТМЫ РЕШЕНИЯ ЗАДАЧ
При выполнении функции программы вычисление остатков на конец месяца была использована следующая формула:
, (1)
где – остаток на конец месяца;
- приход за месяц;
- расход за месяц.
Описание разработанных запросов с указанием параметров, источников данных и текста на SQL представлены в таблице 3.1.
Таблица 3.1 – Описание разработанных запросов
Назначение запроса |
Наименование запроса |
Параметры |
Источники данных: таблица БД или запрос |
Вычисление суммы остатка |
Вычисление_сумм |
Мат_ценности Журнал_учета |
|
Текст запроса |
|||
SELECT Мат_ценности.Номенклатурный_номер, Мат_ценности.Наименование, Журнал_учета.Год, Журнал_учета.Месяц, Sum(Журнал_учета.Приход_за_месяц) AS [Sum-Приход_за_месяц], Sum(Журнал_учета.Расход_за_месяц) AS [Sum-Расход_за_месяц], Sum([Приход_за_месяц]-[Расход_за_месяц]) AS Остаток_за_месяц FROM Мат_ценности INNER JOIN Журнал_учета ON Мат_ценности.Номенклатурный_номер=Журнал_учета.Номер GROUP BY Мат_ценности.Номенклатурный_номер, Мат_ценности.Наименование, Журнал_учета.Год, Журнал_учета.Месяц; |
|||
Подготовка данных для графика «Расход и приход» |
Приход |
Месяц |
Мат_ценности Журнал_учета |
Текст запроса |
|||
SELECT Мат_ценности.Наименование, Журнал_учета.Год, Sum(Журнал_учета.Приход_за_месяц) AS [Sum-Приход_за_месяц], Sum(Журнал_учета.Расход_за_месяц) AS [Sum-Расход_за_месяц] FROM Мат_ценности INNER JOIN Журнал_учета ON Мат_ценности.Номенклатурный_номер = Журнал_учета.Номер GROUP BY Мат_ценности.Наименование, Журнал_учета.Год; |
|||
Подготовка данных для графика «Остаток материальных ценностей» |
Остаток |
Год |
Мат_ценности Журнал_учета Вычисление_сумм |
Текст запроса |
|||
SELECT Мат_ценности.Наименование, Журнал_учета.Месяц, Sum(Вычисление_сумм.Остаток_за_месяц) AS [Sum-Остаток_за_месяц] FROM (Мат_ценности INNER JOIN Журнал_учета ON Мат_ценности.Номенклатурный_номер=Журнал_учета.Номер) INNER JOIN Вычисление_сумм ON Мат_ценности.Номенклатурный_номер=Вычисление_сумм.Номенклатурный_номер GROUP BY Мат_ценности.Наименование, Журнал_учета.Месяц; |
|||
Подготовка данных для отчетов |
Отчет |
Мат_ценности Журнал_учета |
|
Текст запроса |
|||
SELECT Мат_ценности.Наименование, Журнал_учета.Год, Журнал_учета.Месяц, Журнал_учета.Остаток_на_начало_года, Журнал_учета.Приход_за_месяц, Журнал_учета.Расход_за_месяц, [Приход_за_месяц]-[Расход_за_месяц] AS Остаток FROM Мат_ценности INNER JOIN Журнал_учета ON Мат_ценности.Номенклатурный_номер = Журнал_учета.Номер; |
Отбор (фильтрация) данных будет осуществляться по месяцу, приходу за месяц и расходу за месяц. Сортировка данных будет осуществляться в порядке возрастания и убывания по названию наименованию номенклатуры и по номеру номенклатуры. Отчеты будут формироваться с группировкой по месяцам, годам и по наименованию номенклатуры. Отчеты построены с помощью объекта Report. Графики будут строиться по месяцам по остатку материальных ценностей и по годам по расходу и приходу материальных ценностей. Вид графиков – полигон. Графики построены с помощью объекта Chart.
СТРУКТУРА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
Был разработан пользовательский интерфейс программы для учета материальных ценностей на предприятии.
В качестве элементов управления для выбора функций использованы закладки и кнопки. Структура пользовательского интерфейса представлена на рисунке 4.1.
Рисунок 4.1 – Структура пользовательского интерфейса
В таблице 4.1 представлено описание форм для работы с БД.
Таблица 4.1 – Структура проекта
Объект |
Назначение |
Form1.cs |
Форма для начала работы |
Form2.cs |
Форма для работы с таблицами БД, вычисление сумм остатка материальных ценностей, выбор графиков и отчетов |
Form3.cs |
Форма для отображения графика о приходе и расходе материальных ценностей по годам |
Form4.cs |
Форма для отображения графика об остатках материальных ценностей по месяцам |
Form5.cs |
Форма для отображения отчета о суммах с группировкой по наименованию номенклатуры |
Form6.cs |
Форма для отображения отчета о суммах с группировкой по годам и месяцам |
AboutBox1.cs |
Для отображения информации о назначении и разработчике |
Назначение элементов управления представлены в таблицах 4.2,4.3.
Таблица 4.2 – Назначение элементов управления формы Form1
Элемент управления |
Имя (идентификатор) |
Надпись |
Назначение |
Кнопка |
button1 |
Приступить к работе |
Открыть форму Form2 для работы с БД |
Кнопка |
button2 |
О программе |
Открыть форму AboutBox1 для отображения данных о программе и разработчике |
Таблица 4.3 – Назначение элементов управления формы Form2
Элемент управления |
Имя (идентификатор) |
Надпись |
Назначение |
Вкладка |
tabControl1 |
Работа с БД |
Перейти на вкладку «Работа с БД» |
Вкладка |
tabControl2 |
Журнал_учета |
Перейти на вкладку «Остатки на конец месяца» |
Вкладка |
tabControl3 |
Графики и отчеты |
Перейти на вкладку «Графики и отчеты» |
Кнопка |
button1 |
Сохранить изменения |
Сохранить и обновить данные в таблицах БД |
Кнопка |
button2 |
Применить |
Применить фильтрацию данных |
Кнопка |
button3 |
Отмена |
Отменить фильтрацию данных |
Переключатель |
radioButton1 |
Номер свидетельства |
Выбрать условия сортировки |
Переключатель |
radioButton2 |
Название фирмы |
Выбрать условия сортировки |
Переключатель |
radioButton3 |
По возрастанию |
Выбрать условия сортировки |
Переключатель |
radioButton4 |
По убыванию |
Выбрать условия сортировки |
Кнопка |
button4 |
Применить |
Применить сортировку данных |
Кнопка |
button5 |
Отмена |
Применить сортировку данных |
Кнопка |
button6 |
Применить |
Применить фильтрацию данных |
Кнопка |
button7 |
Отмена |
Отменить фильтрацию данных |
Переключатель |
radioButton5 |
Отчет о суммах с группировкой по номенклатуре |
Выбрать отчет |
Переключатель |
radioButton6 |
Отчет о суммах с группировкой по годам и месяцам |
Выбрать отчет |
Кнопка |
button8 |
Сформировать |
Сформировать отчет |
Переключатель |
radioButton7 |
Расход и приход (с группировкой по годам) |
Выбрать диаграмму |
Переключатель |
radioButton8 |
Остаток материальных ценностей (по месяцам) |
Выбрать диаграмму |
Визуализация данных производится с помощью компонентов DataGridView.
Для сопровождения БД, которая состоит из взаимосвязанных таблиц, создана программа с интерфейсом, который обеспечивает отображение тех записей в подчиненной таблице (Журнал_учета), которые соответствуют текущей записи в главной таблице (Мат_ценности).
СТРУКТУРА ПРОГРАММЫ
На рисунке 5.1 представлена иерархическая структура программы, в таблице 5.1 – сведения о функциях, выполняемых обработчиком событий.
Рисунок 5.1 – Иерархическая структура программы
Таблица 5.1 – Состав и назначение программных модулей
Имя программного модуля |
Назначение |
Входные параметры |
Выходные параметры |
Вызываемые модули |
|||
Form1 |
|||||||
Button1_Click |
Для открытия формы для работы с БД |
privatevoid button1_Click(object sender, EventArgs e) { Form2 f2 = newForm2(); f2.Show(); } |
|||||
Button2_Click |
Для просмотра данных о программе и разработчике |
privatevoid button2_Click(object sender, EventArgs e) { AboutBox1 A1 = newAboutBox1(); A1.Show(); } |
|||||
Form2 |
|||||||
Button 1_Click |
Для внесения изменений в файл БД и обновления данных таблиц |
Таблицы «Мат_ценности», «Журнал_учета» |
Таблицы «Мат_ценности», «Журнал_учета» |
privatevoid button1_Click(object sender, EventArgs e) { Мат_ценностиTableAdapter.Update(Мат_ценностиDataSet.Мат_ценности); Мат_ценностиTableAdapter.Fill(Мат_ценностиDataSet.Мат_ценности); Журнал_учетаTableAdapter.Update(Мат_ценностиDataSet.Журнал_учета); Журнал_учетаTableAdapter.Fill(Мат_ценностиDataSet.Журнал_учета); } |
|||
Button 2_Click |
Для фильтрации данных |
Таблица «Журнал_учета» |
Таблица «Журнал_учета» |
privatevoid button2_Click(object sender, EventArgs e) { string Znak = ""; int caseSwitch1 = comboBox2.SelectedIndex; switch (caseSwitch1) { case 0: Znak = ">"; break; case 1: Znak = "<"; break; case 2: Znak = "="; break; } int caseSwitch = comboBox1.SelectedIndex; switch (caseSwitch) { case 0: //MessageBox.Show("Выбранадата"); Мат_ценностиЖурнал_учетаBindingSource.Filter = "Месяц" + Znak + "'" + textBox1.Text + "'"; break; case 1: //MessageBox("Выбрано количество покупки"); Мат_ценностиЖурнал_учетаBindingSource.Filter = "Приход_за_месяц" + Znak + "'" + textBox1.Text + "'"; break; case 2: //MessageBox("Выбрано количество продажи"); Мат_ценностиЖурнал_учетаBindingSource.Filter = "Расход_за_месяц" + Znak + "'" + textBox1.Text + "'"; break; } } |
|||
Button 3_Click |
Для отмены фильтрации |
privatevoid button3_Click(object sender, EventArgs e) { Мат_ценностиЖурнал_учетаBindingSource.RemoveFilter(); } |
|||||
Button 4_Click |
Для сортировки данных |
Таблица «Мат_ценности» |
Таблица «Мат_ценности» |
privatevoid button4_Click(object sender, EventArgs e) { if (radioButton1.Checked == true && radioButton3.Checked == true) { Мат_ценностиBindingSource.Sort = "Номенклатурный_номер ASC"; } elseif (radioButton1.Checked == true && radioButton4.Checked == true) { Мат_ценностиBindingSource.Sort = "Номенклатурный_номер DESC"; } elseif (radioButton2.Checked == true && radioButton4.Checked == true) { Мат_ценностиBindingSource.Sort = "Наименование DESC"; } elseif (radioButton2.Checked == true && radioButton3.Checked == true) { Мат_ценностиBindingSource.Sort = "Наименование ASC"; } } |
|||
Button 5_Click |
Для отмены сортировки |
Таблица «Мат_ценности» |
Таблица «Мат_ценности» |
privatevoid button5_Click(object sender, EventArgs e) { Мат_ценностиBindingSource.RemoveSort(); } |
|||
Button 6_Click |
Для фильтрации данных |
Таблица «Вычисление_сумм» |
Таблица «Вычисление_сумм» |
privatevoid button6_Click(object sender, EventArgs e) { string Znak = ""; int caseSwitch1 = comboBox2.SelectedIndex; switch (caseSwitch1) { case 0: Znak = ">"; break; case 1: Znak = "<"; break; case 2: Znak = "="; break; } int caseSwitch = comboBox2.SelectedIndex; switch (caseSwitch) { case 0: //MessageBox("Выбраноколичествопокупки"); вычислениесуммBindingSource.Filter = "Остаток_за_месяц" + Znak + "'" + textBox2.Text + "'"; break; case 1: //MessageBox("Выбрано количество продажи"); вычислениесуммBindingSource.Filter = "Приход_за_месяц" + Znak + "'" + textBox2.Text + "'"; break; } case 1: //MessageBox("Выбрано количество продажи"); вычислениесуммBindingSource.Filter = "Расход_за_месяц" + Znak + "'" + textBox2.Text + "'"; break; } } |
|||
Button 7_Click |
Для отмены фильтрации |
privatevoid button7_Click(object sender, EventArgs e) { вычислениесуммBindingSource.RemoveFilter(); } |
|||||
Button 8_Click |
Для построения отчетов |
Запрос «Отчет» |
privatevoid button9_Click(object sender, EventArgs e) { if (radioButton7.Checked == true) { Form5 f5 = newForm5(); f5.Show(); } elseif (radioButton8.Checked == true) { Form6 f6 = newForm6(); f6.Show(); } } |
||||
Button 9_Click |
Для формирования графиков |
Запрос «Остаток», «Приход» |
privatevoid button8_Click(object sender, EventArgs e) { if (radioButton6.Checked == true) { Form3 f3 = newForm3(); f3.Show(); } elseif (radioButton5.Checked == true) { Form4 f4 = newForm4(); f4.Show(); } } } |
Схема работы программы представлена в приложении А. Она представляет технологический процесс обработки данных. Все данные хранятся в файле Матценности.mdb. Для отображения данных о суммах с группировкой по определенному полю используются запросы, описанные в разделе 3 настоящей пояснительной записки.
ОПИСАНИЕ ПРОГРАММЫ
Текст программы представлен в приложении Б.
Перечень файлов представлен на рисунке 6.1.
Рисунок 6.1 – Перечень файлов
Сведения об использованных компонентах и значениях их свойств, которые потребовались при создании программы, представлены в таблицах 6.1,6.2.
Таблица 6.1 - Свойства компонентов формы Form1
Компонент и его имя |
Надпись |
Свойство |
Значение |
Кнопка button1 |
Приступить к работе |
Font – Name\Size |
Microsoft Sans Serif\10 |
Text |
Приступить к работе |
||
Метка label1 |
Учет материальных ценностей |
Font – Name\Size |
Microsoft Sans Serif\14 |
Text |
Учет материальных ценностей |
||
Кнопка button2 |
О программе |
Font – Name\Size\Italic |
Microsoft Sans Serif\10 |
Text |
О программе |
Таблица 6.2 - Свойства компонентов формы Form2
Компонент и его имя |
Надпись |
Свойство |
Значение |
Вкладка tabControl1 |
Работа с БД |
- |
- |
Вкладка tabControl2 |
Остатки на конец месяца |
- |
- |
Вкладка tabControl3 |
Графики и отчеты |
- |
- |
Компонент и его имя |
Надпись |
Свойство |
Значение |
Кнопка button1 |
Сохранить изменения |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Сохранить изменения |
||
Источник данных, Мат_ценностиBildingSourse |
- |
DataSource |
Мат_ценностиDataSetBindingSource |
DataMember |
Мат_ценности |
||
Name |
Мат_ценностиBindingSource |
||
Источник данных Мат_ценностиЖурнал_учетаBildingSourse |
- |
DataSource |
Мат_ценностиDataSetBindingSource |
DataMember |
Мат_ценностиЖурнал_учета |
||
Name |
Мат_ценностиЖурнал_учета BindingSource |
||
Блок объединения groupBox1 |
- |
Text |
Фильтр |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Выпадающий список comboBox1 |
- |
Items |
Месяц Приход за месяц Расход за месяц |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Выпадающий список comboBox2 |
- |
Items |
> < = |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Окно редактирование textBox1 |
- |
Font – Name\Size |
Microsoft Sans Serif\11 |
Кнопка button2 |
Применить |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Применить |
||
Кнопка button3 |
Отмена |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Отмена |
||
Блок объединения groupBox2 |
- |
Text |
Сортировка |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton1 |
Номер свидетельства |
Text |
Номер свидетельства |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton2 |
Название фирмы |
Text |
Название фирмы |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton3 |
По возрастанию |
Text |
По возрастанию |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton4 |
По убыванию |
Text |
По убыванию |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Кнопка button4 |
Отмена |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Применить |
||
Кнопка button5 |
Очистить |
Font – Name\Size |
Microsoft Sans Serif\11 |
Источник данных, Вычисление_суммBildingSourse |
- |
DataSource |
Мат_ценностиDataSetBindingSource |
DataMember |
Вычисление_сумм |
||
Name |
Вычисление_суммBindingSource |
||
Выпадающий список comboBox4 |
- |
Items |
Остаток за месяц Приход за месяц Расход за месяц |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Выпадающий список comboBox5 |
- |
Items |
> < = |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Окно редактирование textBox2 |
- |
Font – Name\Size |
Microsoft Sans Serif\11 |
Кнопка button6 |
Применить |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Применить |
||
Кнопка button7 |
Отмена |
Font – Name\Size |
Microsoft Sans Serif\11 |
Блок объединения groupBox3 |
- |
Text |
Отчеты |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton7 |
Отчет о суммах (с группировкой по номенклатуре) |
Text |
Отчет о суммах (с группировкой по номенклатуре) |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton8 |
Отчет о о суммах (с групировкой по годам и месяцам) |
Text |
Отчет о о суммах (с групировкой по годам и месяцам) |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Кнопка button8 |
Сформировать |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Сформировать |
||
Блок объединения groupBox4 |
- |
Text |
Графики |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton5 |
Приход и расход (по годам) |
Text |
Приход и расход (по годам) |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton6 |
Остаток (с группировкой по месяцам) |
Text |
Остаток (с группировкой по месяцам) |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Кнопка button9 |
Построить |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Сформировать |
Взаимодействие компонентов прикладной программы между собой и с файлами БД представлено на рисунке 6.2.
Рисунок 6.2 – Схема взаимодействия компонентов с таблицами БД
ТЕСТИРОВАНИЕ ПРОГРАММЫ
Для тестирования программы необходимо проделать все действия, которые будет проделывать пользователь.
Необходимо проверить сохранение обновлений, для этого необходимо:
добавить в БД сведения о новой номенклатуре и приходе/расходе (рисунок 7.1);
нажать кнопку «Сохранить изменения»;
перезапустить программу и проверить изменения.
Рисунок 7.1 –Добавление данных
После перезапуска программы добавленные данные сохранились, значит, сбоя в сохранении изменений нет.
Необходимо проверить работу фильтрации данных, для этого необходимо:
выбрать поле для фильтрации и необходимый знак для построения выражения, ввести параметр сортировки;
нажать кнопку «Применить».
После необходимых манипуляций в таблице должен отобразиться результат. Если результат верный, значит, сбоя в фильтрации данных нет (рисунок 7.2).
Рисунок 7.2 – Фильтрация данных
Необходимо проверить работу сортировки данных, для этого необходимо:
выбрать поле сортировки и параметр;
нажать кнопку «Применить».
После необходимых манипуляций в таблице должен отобразиться результат. Если результат верный, значит, сбоя в сортировке данных нет (рисунок 7.3).
Рисунок 7.3 – Сортировка данных
Также необходимо проверить вычисление сумму для этого необходимо:
перейти на форму «Остатки на конец месяца»;
проверить изменения (рисунок 7.4).
Рисунок 7.4 – Вычисление сумм остатка материальных ценностей
Необходимо проверить работу построения отчетов:
выбрать тип отчета;
нажать кнопку «Сформировать».
После необходимых манипуляций на экране должна отобразиться форма с отчетом (рисунок 7.5).
Рисунок 7.5 – Форма с отчетом
Необходимо проверить работу построения графиков:
выбрать тип графика;
нажать кнопку «Построить».
После необходимых манипуляций на экране должна отобразиться форма с графиком (рисунок 7.6).
Рисунок 7.6 – Форма отчета
РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
8.1 Назначение системы
Данная программа предназначена для учета материальных ценностей на предприятии.
Программа позволяет пользователю работать с базой данных созданной в СУБД Microsoft Access. Программа реализует возможности: добавления, изменения, удаления информации в базе данных, а также возможности выбирать данные по указанным критериям.
Настоящее руководство предназначено для пользователей данного программного продукта и содержит описание действий, необходимых для обеспечения эффективной работы пользователей.
8.2 Подготовка к работе
Данный программный продукт реализован в среде Microsoft Visual Studio 2013 и Microsoft Access 2003. Если данных продуктов нет в пользовании, то их следует приобрести. После приобретения их следует установить на ПК пользователей, следуя всем необходимым инструкциям.
8.3 Требования к программно-аппаратному обеспечению
Работа пользователя с программой возможна при выполнении следующих требований к программно-аппаратному обеспечению рабочей станции пользователя.
Для использования Microsoft Visual Studio 2013 следующее оборудование:
компьютер и процессор: частота не ниже 1,6 ГГц;
оперативная память не менее 1 Гб;
место на жестком диске не менее 4 Гб;
операционная система: Microsoft Windows 7 и выше;
Microsoft .NET Framework 4.6;
Дополнительные требования. Требуется обновление из статьи базы знаний KB2883200 (доступно в Центре обновления Windows).
Фактические требования и функциональность продукта могут отличаться в зависимости от системной конфигурации и операционной системы.
8.4 Работа с программным продуктом
Начало работы
Первое что требуется от пользователя запустить программный продукт на выполнение. Для этого нужно выбрать каталог, в котором находится файл. В списке папок последовательно дважды щелкнуть левой клавишей мыши на папке, содержащей файл Мат_ценности; откроется форма (рисунок 8.4.1). Далее для начала работы нужно нажать .
Рисунок 8.4.1 – Начальная форма
8.4.2 О программе
Необходимо кликнуть левой клавишей мыши по необходимому пункту меню и нажать кнопку .
После нажатия появится форма с информацией о программе и разработчике (рисунок 8.4.2)
Рисунок 8.4.2 – Информация о программе
8.4.3 Работа с БД
Необходимо кликнуть левой клавишей мыши по вкладке «Работа с БД».
8.4.3.1 Операция 1 – ввод и сохранение новых данных. Для ввода дынных о номенклатуре необходимо кликнуть левой клавишей мыши по пустому полю таблицы. В поля необходимо ввести наименование номенклатуры и из выпадающего списка выбрать единицу измерения (рисунок 8.4.3).
Рисунок 8.4.3 – Заполнение данных о номенклатуре
Далее в поля второй таблицы нужно ввести год, месяц, остаток на конец года, приход за месяц, расход за месяц (рисунок 8.4.4).
Рисунок 8.4.4 – Заполнение данных о приходе/расходе
Далее нужно сохранить введенные данные нажатием левой клавишей мыши на кнопку «Сохранить изменения».
8.4.3.2 Операция 2 – фильтрация данных. Для фильтрации данных необходимо в блоке «Фильтр» из всплывающего списка выбрать название поля, по которому будет осуществляться фильтрация и знак. В текстовом поле ввести значение (рисунок 8.4.5) и нажать левой клавишей мыши на кнопку .
Рисунок 8.4.5 – Выбор условий для фильтрации
Для отмены фильтра нажать левой клавишей мыши на кнопку «Отмена».
8.4.3.3 Операция 3 – сортировка данных. Для сортировки данных необходимо в блоке «Сортировка» выбрать название поля, по которому будет осуществляться сортировка и параметр (возрастание или убывание) (рисунок 8.4.6) и нажать левой клавишей мыши .
Рисунок 8.4.6 – Выбор параметров сортировки
Для отмены сортировки нажать левой клавишей мыши «Отмена».
8.4.4 Вычисление сумм доходов
Необходимо кликнуть левой клавишей мыши по вкладке «Остатки на конец месяца». После нажатия появится форма с вычисленными суммами. На данной вкладке можно применить фильтр (см. пункт 8.4.3.2 Операция 2 – фильтрация данных).
8.4.5 Операция 1 – отчеты. Для формирования отчетов необходимо перейти на вкладку «Графики и отчеты» и выбрать в блоке «Отчеты» который необходим (рисунок 8.4.7) и нажать левой клавишей мыши на .
Рисунок 8.4.7 – Выбор отчета
8.4.6 Операция 2 – графики. Для формирования отчетов необходимо перейти на вкладку «Графики и отчеты» и выбрать в блоке «Графики» тот, который необходим (рисунок 8.4.8) и нажать левой клавишей мыши на .
Рисунок 8.4.8 – Выбор графика
ЗАКЛЮЧЕНИЕ
В ходе выполнения курсового проекта были получены и закреплены навыки программирования в среде Visual Studio 2013 C#.
Было создано Windows-приложение, которое позволяет проводить учет материальных ценностей на предприятии, с возможностью добавления, удаления и редактирования информации. Был разработан пользовательский интерфейс приложения.
Было разработано руководство пользователя.
Проведенное тестирование работы программы не выявило ошибок.
ЛИТЕРАТУРА
ГОСТ 19.401 – 78. ЕСПД. Текст программы. Требования к содержанию и оформлению. - М.: Изд-во стандартов, 1978
ГОСТ 19.505 – 79. ЕСПД. Руководство оператора. Требования к содержанию и оформлению. - М.: Изд-во стандартов, 1977
ГОСТ 19.701 - 90. ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. - М.: Изд-во стандартов. – 1990
Руководство по программированию на C# [Электронный ресурс] – Заголовок с экрана. – Режим доступа: http://msdn.microsoft.com/ru-ru/library/67ef8sbd.aspx.
Требования к системе Visual Studio 2013 [Электронный ресурс] – Заголовок с экрана. – Режим доступа: https://www.visualstudio.com/ru-ru/productinfo/vs2013-sysrequirements-vs.
Приложение А. Схема работы программы
Приложение Б. Текст программы
Form1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp3
{
publicpartialclassForm1 : Form
{
public Form1()
{
InitializeComponent();
}
privatevoid button1_Click_1(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
}
privatevoid button2_Click(object sender, EventArgs e)
{
AboutBox1 A1 = new AboutBox1();
A1.Show();
}
}
}
Form2
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp3
{
publicpartialclassForm2 : Form
{
public Form2()
{
InitializeComponent();
}
privatevoid Form2_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "матценностиDataSet1.Журнал_учета". При необходимости она может быть перемещена или удалена.
this.журнал_учетаTableAdapter.Fill(this.матценностиDataSet1.Журнал_учета);
// TODO: данная строка кода позволяет загрузить данные в таблицу "матценностиDataSet1.Мат_ценности". При необходимости она может быть перемещена или удалена.
this.мат_ценностиTableAdapter.Fill(this.матценностиDataSet1.Мат_ценности);
// TODO: данная строка кода позволяет загрузить данные в таблицу "матценностиDataSet1.Вычисление_сумм". При необходимости она может быть перемещена или удалена.
this.вычисление_суммTableAdapter.Fill(this.матценностиDataSet1.Вычисление_сумм);
}
privatevoid button1_Click(object sender, EventArgs e)
{
мат_ценностиTableAdapter.Update(матценностиDataSet1.Мат_ценности);
журнал_учетаTableAdapter.Update(матценностиDataSet1.Журнал_учета);
мат_ценностиTableAdapter.Fill(матценностиDataSet1.Мат_ценности);
журнал_учетаTableAdapter.Fill(матценностиDataSet1.Журнал_учета);
}
privatevoid button5_Click(object sender, EventArgs e)
{
string Znak = "";
int caseSwitch1 = comboBox2.SelectedIndex;
switch (caseSwitch1)
{
case 0:
Znak = ">";
break;
case 1:
Znak = "<";
break;
case 2:
Znak = "=";
break;
}
int caseSwitch = comboBox1.SelectedIndex;
switch (caseSwitch)
{
case 0:
//MessageBox.Show("Выбраноназвание");
referenceBindingSource.Filter = "Месяц" + Znak + "'" + textBox1.Text + "'";
break;
case 1:
//MessageBox("Выбранзаказчик");
referenceBindingSource.Filter = "Приход_за_месяц" + Znak + "'" + textBox1.Text + "'";
break;
case 2:
//MessageBox("Выбранастоимость");
referenceBindingSource.Filter = "Расход_за_месяц" + Znak + "'" + textBox1.Text + "'";
break;
}
}
privatevoid button2_Click(object sender, EventArgs e)
{
referenceBindingSource.RemoveFilter();
}
privatevoid button3_Click(object sender, EventArgs e)
{
{
if (radioButton1.Checked == true && radioButton3.Checked == true)
{
матценностиBindingSource.Sort = "Номенклатурный_номер ASC";
}
elseif (radioButton1.Checked == true && radioButton4.Checked == true)
{
матценностиBindingSource.Sort = "Номенклатурный_номер DESC";
}
elseif (radioButton2.Checked == true && radioButton4.Checked == true)
{
матценностиBindingSource.Sort = "Наименование DESC";
}
elseif (radioButton2.Checked == true && radioButton3.Checked == true)
{
матценностиBindingSource.Sort = "Наименование ASC";
}
}
}
privatevoid button4_Click(object sender, EventArgs e)
{
матценностиBindingSource.RemoveSort();
}
privatevoid button7_Click(object sender, EventArgs e)
{
string Znak = "";
int caseSwitch1 = comboBox4.SelectedIndex;
switch (caseSwitch1)
{
case 0:
Znak = ">";
break;
case 1:
Znak = "<";
break;
case 2:
Znak = "=";
break;
}
int caseSwitch = comboBox3.SelectedIndex;
switch (caseSwitch)
{
case 0:
//MessageBox.Show("Выбраноназвание");
вычислениесуммBindingSource.Filter = "Остаток_за_месяц" + Znak + "'" + textBox2.Text + "'";
break;
case 1:
//MessageBox("Выбранзаказчик");
вычислениесуммBindingSource.Filter = "Приход_за_месяц" + Znak + "'" + textBox2.Text + "'";
break;
case 2:
//MessageBox("Выбранастоимость");
вычислениесуммBindingSource.Filter = "Расход_за_месяц" + Znak + "'" + textBox2.Text + "'";
break;
}
}
privatevoid button6_Click(object sender, EventArgs e)
{
вычислениесуммBindingSource.RemoveFilter();
}
privatevoid button8_Click(object sender, EventArgs e)
{
вычисление_суммTableAdapter.Fill(матценностиDataSet1.Вычисление_сумм);
}
privatevoid button9_Click(object sender, EventArgs e)
{
if (radioButton6.Checked == true)
{
Form3 f3 = new Form3();
f3.Show();
}
elseif (radioButton5.Checked == true)
{
Form4 f4 = new Form4();
f4.Show();
}
}
privatevoid button10_Click(object sender, EventArgs e)
{
if (radioButton8.Checked == true)
{
Form5 f5 = new Form5();
f5.Show();
}
elseif (radioButton7.Checked == true)
{
Form6 f6 = new Form6();
f6.Show();
}
}
}
}
Form3
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp3
{
publicpartialclassForm3 : Form
{
public Form3()
{
InitializeComponent();
}
privatevoid Form3_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "матценностиDataSet1.Приход". При необходимости она может быть перемещена или удалена.
this.приходTableAdapter.Fill(this.матценностиDataSet1.Приход);
// TODO: данная строка кода позволяет загрузить данные в таблицу "матценностиDataSet.Приход". При необходимости она может быть перемещена или удалена.
this.приходTableAdapter.Fill(this.матценностиDataSet1.Приход);
}
}
}
Form4
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp3
{
publicpartialclassForm4 : Form
{
public Form4()
{
InitializeComponent();
}
privatevoid Form4_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "матценностиDataSet1.Остаток". При необходимости она может быть перемещена или удалена.
this.остатокTableAdapter.Fill(this.матценностиDataSet1.Остаток);
}
}
}
Form5
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
publicpartialclassForm4 : Form
{
public Form4()
{
InitializeComponent();
}
privatevoid Form4_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'Мат_ценностиDataSet.Отчеты' table. You can move, or remove it, as needed.
this.ОтчетыTableAdapter.Fill(this.Мат_ценностиDataSet.Отчеты);
this.reportViewer1.RefreshReport();
}
}
}
Form6
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
publicpartialclassForm4 : Form
{
public Form4()
{
InitializeComponent();
}
privatevoid Form4_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'Мат_ценностиDataSet.Отчеты' table. You can move, or remove it, as needed.
this.ОтчетыTableAdapter.Fill(this.Мат_ценностиDataSet.Отчеты);
this.reportViewer2.RefreshReport();
}
}
}
ПриложениеВ. Экранныеформы
Рисунок В.1 – Начальная форма (Form1)
Рисунок В.2 – Вкладка «Работа с БД» (Form2)
Рисунок В.3 – Вкладка «Остатки на конец месяца» (Form2)
Рисунок В.4 – Вкладка «Графики и отчеты» (Form2)
Рисунок В.5 – Форма отчета (Form5)
Рисунок В.6 – Форма отчета (Form6)
Рисунок В.7 – Форма графика (Form3)
Рисунок В.8 – Форма графика (Form4)
Рисунок В.9 – Форма с информацией о программе (AboutBox1)