Диплом: Исследование разработка информационной системы управленческого учета видеосалонов на примере ООО "Видеогид"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
64
проданным билетам, который выгружается в Excel-таблицу, оформляется
соответствующим образом и по выгруженным данным производится расчет
выручки относительно каждого сеанса и в целом по наименованию,
составляеются графики продаж по расчетным данным.
Рисунок 35 - Блок-схема модуля "Сеансы"
При работе с формой «Кадры» необходимо в некоторых случаях
параллельное подключение к базе данных «Справочник» (рис. 26).
Рисунок 36 - Блок-схема модуля "Кадры"
Функция «отобразить данные по больничным» требует только
подключение к актуальной базе. При добавлении данных в таблицу происходит
65
выбор фамилий из списка, который формируется на основании таблицы
«Сотрудники». «Отобразить данные по зарплате» требует одновременное
подключение двух баз, откуда берутся соответствующие данные. Внесение
изменений в таблицу «Сотрудники» требует подключение только к базе
«Справочник».
2.4. Контрольный пример реализации проекта и его описание
Работа программы начинается с главной формы «ИС», на которой
расположены 4 кнопки перехода на другие формы – «Касса», «Сеансы»,
«Кадры», «Справочник» (рис 37).
Рисунок 37 - Главное окно программы
Так же, на главной форме присутствует вкладка «Документы», с которой
можно открыть выбранный из списка документ (рис.38).
Рисунок 38. Вкладка «Документы» главный формы
66
При наведении на соответствующую кнопку на форме появляется
тематическое изображение (рис. 39).
Рисунок 39 - Пример изменения формы
Полный текст программного кода главного окна программы показан в
приложении 1.
Кнопкой «Касса» открывается соответствующая форма. Вызов
осуществляется командой :
- скрыть текущую форму:
this.Hide();
- присвоить форме переменную:
Form kass = new VrK();
- дать команду на открытие формы по заданной переменной:
kass.ShowDialog();
- по закрытии формы показывать главное окно:
this.Show();
Данное решение позволяет при закрытии формы второго уровня вернуться
обратно на главную.
Форма «Касса» представляет собой окно, на котором присутствует
элемент toolStrip, на котором списком выведены кнопки управления и работы с
базой данных: «Подключиться», «Добавить запись», «Очистить таблицу»,
«Показать выручку», «Сумма», «Вернуться» и «2018» (рис. 40).
67
Рисунок 40 - Форма «Выручка Кассы»
Кнопка «Подключиться» служит для подключения к файлу базы данных, и
создания таблицы, если таковой нет с соответствующим названием. Команда на
подключение работает следующим образом:
- задаются действия при нажатии кнопки:
private void btCreate_Click(object sender, EventArgs e)
{
- происходит проверка доступности файла базы данных и создание в корневом
каталоге файла, если файл не найден:
if (!File.Exists(dbFileName))
SQLiteConnection.CreateFile(dbFileName);
try
{
- задает переменную «m_dbConn» соответствующую подключению к файлу базы
данных:
m_dbConn = new SQLiteConnection ("Data Source=" + dbFileName +
";Version=3;");
- открывает подключение через заданную переменную:
m_dbConn.Open();
- производиться подключение к sqlCmd, дающий доступ к SQL-командам:
m_sqlCmd.Connection = m_dbConn;
68
- при отсутствии создает таблицу с названием «kass» + «месяц», выбранный в
выпадающем меню cbMonth1 с столбцами ID (первичный ключ), Day и Money в
текстовом формате:
m_sqlCmd.CommandText = "CREATE TABLE IF NOT EXISTS " + "kass" +
cbMonth1.Text + " (id INTEGER PRIMARY KEY AUTOINCREMENT, day
TEXT, money TEXT)";
- выполняет выражение из CommandText и возвращает количество измененных
записей:
m_sqlCmd.ExecuteNonQuery();
- показывает в специальной графе надпись «Connected»:
lbStatusText.Text = "Connected";
При успешном подключении в нижней части экрана появится надпись
«Status: Connected». При попытке воспользоваться другими элементами без
подключения появится предупреждающая запись о том, что подключение к БД
не произведено.
В исходном положении элемент DataGridViev скрыт и становится
видимым только при использовании элементов, ссылающихся на него.
«Добавить запись» служит для добавления записи в базу данных. Запись
осуществляется следующим образом:
- проверяет, открыто ли соединение с базой данных:
if (m_dbConn.State != ConnectionState.Open) {
- при отсутствии соединения показывает сообщение о недоступности базы
данных и возвращает в исходное состояние;
MessageBox.Show("Open connection with database");
return;}
- задается условие, выполняющиеся при нажатии кнопки ОК на форме
добавления выручки:
AddDataToDb addData = new AddDataToDb();
if (addData.ShowDialog() == DialogResult.OK)
{
try
69
- при успешном результате вставляет в таблицу KassМесяц значения из формы
Добавления выручки:
{m_sqlCmd.CommandText = "INSERT INTO " + "kass" + cbMonth1.Text + "
('day', 'money') values ('" +
addData.Day + "' , '" + // берет данные из переменной Day
addData.Money + "')"; // и Money с формы addData;
m_sqlCmd.ExecuteNonQuery(); }
- при неправильных действиях отображается ошибка:
catch (SQLiteException ex)
{
MessageBox.Show("Error: " + ex.Message);
}
При работе с этим элементом необходимо выбрать в верхней части экрана
на соответствующем элементе нужный месяц, без этого программа может вести
себя некорректно. Кнопка «Добавить запись» вызывает дополнительную форму,
на которой присутствуют поля «Выручка» и календарь с возможностью выбора
даты (рис. 41).
Рисунок 41 - Форма Добавить выручку
При нажатии кнопки «ОК» данные из соответствующих элементов будут
возвращены в запрос кнопки «Добавить запись» и информация будет загружена
в базу данных. Процесс передачи даныне осуществляется следующим образом:
- переменная Day берет выбранное пользователем число на элементе Календарь:
private void btOK_Click(object sender, EventArgs e)
{
Day = kassCalendar.SelectionRange.Start.ToShortDateString();
70
- переменная Money задается текстом, введенном в поле «Выручка»:
Money = tbMoney.Text;
- дается команда на возвращаение значения Day и Money на форму Касса:
DialogResult = DialogResult.OK;
}
Элемент «Очистить таблицу» служит для очистки элемента DataGridViev,
на который выводятся данные и сокрытии данного элемента (рис.42).
При использовании «Показать выручку» на таблицу DataGridViev
выводятся все записи из таблицы за выбранный месяц. При выборе в
выпадающем списке месяц данные будут показаны за соответствующий месяц.
Запрос на отображение всех элементов:
- SQL запрос, вызывающий все элементы из таблицы kassМесяц:
sqlQuery = "SELECT * FROM " + "kass" + cbMonth1.Text;
- создать новую переменную соответствующую DataAdapter, необходимого для
загрузки данных из источника данных в System.Data.DataSet:
Рисунок 42 - Исходное состояние формы "Касса"
SQLiteDataAdapter adapter = new SQLiteDataAdapter(sqlQuery, m_dbConn);
- заполнить созданную таблицу dTable элементами из запроса:
adapter.Fill(dTable);
- задать колонкам элемента DataGridViev текст заголовка и видимость:
dgvViewer.Columns[0].HeaderText = "ID"; dgvViewer.Columns[0].Visible =
true;
71
dgvViewer.Columns[1].HeaderText = "День";
dgvViewer.Columns[1].Visible = true;
dgvViewer.Columns[2].HeaderText = "Выручка";
dgvViewer.Columns[2].Visible = true;
- запускает условие при наличии в таблице dTable данных:
if (dTable.Rows.Count > 0)
{
- отчистить таблицу DataGridViev:
dgvViewer.Rows.Clear();
- задает условие и шаг цикла:
for (int i = 0; i < dTable.Rows.Count; i++)
- заполняет элемент DataGridViev данными из таблицы dTable:
dgvViewer.Rows.Add(dTable.Rows[i].ItemArray);
Кнопка «Сумма» выводит на экран общую сумму выручки за месяц или за
тот период который присутствует в таблице (если таблица за месяц заполнена не
полностью) (рис. 43).
SQL-запрос, выбирающий из таблицы kassМесяц столбец «Money» и
суммирующий все элементы в нем:
sqlQuery = "SELECT SUM(money) from " + "kass" + cbMonth1.Text;
Элемент «Вернуться» используется для возвращения на главный экран
программы:
- в тело кнопки с условием «при нажатии» записывается оператор Close:
private void toolStripButton1_Click(object sender, EventArgs e)
{
Close();
}
Элемент «2018» представлен в виде label-записи и служит маяком выбора
года для базы данных:
dbFileName = vrkYear.Text + ".sqlite";
72
Рисунок 43 - Результат запроса "Сумма"
Так же на экране «Выручка касса» присутствует элемент «Статистика за
месяц», использовать который необходимо только при выведенных записей на
экран. Данный элемент выгружает основные данные в шаблон excel-документа,
так же при открытии документа он автоматически предлагает сохранить его,
используя элемент Save As». Алгоритм работы элемента:
- задает новую переменную приложения Excel:
Excel.Application excel = new Excel.Application();
- сделать объект видимым:
excel.Visible = true;
- задать количество листов в книге:
excel.SheetsInNewWorkbook = 4;
- добавить новую книгу:
excel.Workbooks.Add(Type.Missing);
- создать переменную открытой книги:
Excel.Workbook workbook = excel.Workbooks[1];
- создает переменную открытого листа:
Excel.Worksheet sheet = workbook.Worksheets.get_Item(1);
try
{
- определить первую строку заполнения:
int rowExcel = 3;
73
- определить начальный элемент, условие цикла и шаг:
for (int i = 0; i < dgvViewer.Rows.Count; i++)
{
- заполнить строку А из dgvViewer значениями строк Day, аналогично
заполняются отсальные строки:
sheet.Cells[rowExcel, "A"] = dgvViewer.Rows[i].Cells["Day"].Value;
++rowExcel;
}
- объединить 3 ячейки первой строки:
sheet.Range[sheet.Cells[1, 1], sheet.Cells[1, 3]].Merge();
- заполнить первую ячейку первой строки названием таблицы с добавлением
названия месяца:
sheet.Cells[1, 1] = "Отчет по выручке за " + cbMonth.Text;
заполнить ячейки названиями строк:
sheet.Cells[2, 1] = "День";
sheet.Cells[2, 2] = "Выручка";
sheet.Cells[2, 3] = "Итого за месяц";
- вставляет в ячейку С3 формулу расчета итоговой выручки:
sheet.Cells[3, 3] = "=СУММ(B3:B33)";
- задать параметры ячеек:
sheet.Cells.get_Range("A1", "C15").Font.Name = "TimesNewRoman";
sheet.Cells.get_Range("A1", "C10").Font.Size = 14;
sheet.Cells.get_Range("A1", "C2").Font.Bold = true;
sheet.Cells.get_Range("A1", "C2").ColumnWidth = 18;
sheet.Cells.get_Range("A1", "C2").ColumnWidth = 18;
- задать переменную графика Excel:
Excel.ChartObjects xlCharts =
(Excel.ChartObjects)sheet.ChartObjects(Type.Missing);
- создать переменную нового графика:
Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(000, 300, 350,
250);
- добавить на страницу новый график:

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран