Файл: Инструкция для пользователя программы 44 1 Установка и запуск программы 44.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.11.2023
Просмотров: 225
Скачиваний: 1
СОДЕРЖАНИЕ
1.4 Проектирование базы данных
1.4.1 Основы теории баз данных
1.4.2 Особенности проектирования баз данных
1.5 Конструирование диаграммы данных
1.7.1 Клиент-серверная модель вычислений
1.7.2 Преимущества и недостатки вычислений клиент-сервер
ГЛАВА 2. Разработка программного продукта
2.1 Создание интерфейса программы
2.3 Создание классов для доступа к данным сервера
2.4 Привязка данных к элементам управления
2.5 Расчет значений по формулам
2.6 Обработка исключительных ситуаций
2.7 Инструкция для пользователя программы
2.7.1 Установка и запуск программы
2.7.2 Графический интерфейс пользователя
2.7.6 Расчет технологических данных
2.7.7 Составление технологической карты
2.7.8 Завершение работы программы
2.8.1 Общая характеристика программного средства
2.8.2 Расчет полной себестоимости разработки программного средства
2.8.3 Определение отпускной цены на программное средство
Для удобства отображения данных в строках таблицы были созданы текстовые поля с аналогичными названиями столбцов самой таблицы. Программно осуществлена привязка строки таблицы к значениям текстовых полей.
Вкладка «Расчет заказа» (рисунок 15), основной формы программы, должна содержать элементы для отображения данных заказа, списков выборки, а также таблицы со значениями, рассчитанными программно, по формулам.
Рисунок 15 – Диалоговое окно «Клиенты»
Для расчета основных технологических данных была создана кнопка «Рассчитать», которая запускает процесс расчета параметров заказа и выводит результаты во вторую таблицу.
Для составления технологической карты заказа, было принято решение использовать отдельное диалоговое окно, запускаемое по нажатию кнопки «Технологическая карта» (рисунок 16). Данное диалоговое окно должно содержать номер заказа, списки выборок, таблицу значений, а также уже описанный ранее элемент «bindingNavigator», для манипуляции с данными.
Для каждой выборки этого окна «Технологическая карта» были дополнительно созданы диалоговые окна, при помощи которых производятся манипуляции со значениями выборок. Эти окна вызываются по нажатию кнопки «Список».
Рисунок 16 – Диалоговое окно «Технологическая карта»
После создания элементов на вкладке «Расчет заказа», основной формы программы, можно приступать к программной части.
2.2 Обработка команд
После создания всех элементов интерфейса необходимо запрограммировать действия всех элементов. Первое что необходимо сделать – это настроить работу меню, для тго чтобы оно начало выполнять функции возложенные на него т.е. получать быстрый доступ к спискам, справочной информации и т.д.
Для того, чтобы присвоить каждому пункту меню свои действия необходимо в визуальном редакторе меню дважды щелкнуть по соответствующему пункту. Будет открыт редактор кода и курсор будет находиться внутри функции обработчика нажатия клавиши мыши. Например для команды меню «Списки» → «Клиенты» функция обработчика выглядит следующим образом:
private void клиенты ToolStripMenuItem_Click(object sender, EventArgs e){}
Для того, чтобы пункт меню вызвал соответствующее диалоговое окно списка «Клиенты» необходимо добавить в функцию обработчик код, чтобы она выглядела следующим образом:
private void клиентыToolStripMenuItem_Click(object sender, EventArgs e)
{ Clients clients = new Clients();
clients.ShowDialog();
}
Все последующие элементы из меню «Списки» программируются аналогичным образом.
Для того, чтобы запустить файл справки по нажатию на пункт меню «Справка» → «Помощь» необходимо в обработчик данного меню добавить следующий код:
private void помощьToolStripMenuItem_Click(object sender, EventArgs e)
{
string fbPath = Application.StartupPath;
string fname = "help.chm";
string filename = fbPath + @"\" + fname;
FileInfo fi = new FileInfo(filename);
if (fi.Exists)
{
Help.ShowHelp(this, filename, HelpNavigator.Find, "");
}
else
{
MessageBox.Show("Файл справки отсутствует!","Файл справки" ,MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
Для того, чтобы строки таблицы на вкладке «Обзор заказов» были выделены каждая своим цветом (рисунок 17), в зависимости от статуса заказа, необходимо добавить обработчик «CellFormatting» элемента таблицы «dataGridView» со следующим кодом:
private void dataGridView1_CellFormatting(object sender,
DataGridViewCellFormattingEventArgs e)
{string value = dataGridView1.Rows[e.RowIndex].Cells["Статус"].
Value.ToString();
switch (value)
{case "Стол заказов":{
dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor Color.Yellow;
break;}
case "У технолога":
{dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.
LightBlue;break;}
case "В наборный цех":{dataGridView1.Rows[e.RowIndex].DefaultCellStyle.
BackColor = Color.Orange;
break;}
case "На печать":{dataGridView1.Rows[e.RowIndex].DefaultCellStyle.
BackColor = Color.DarkOrchid;
break;}
case "В переплётный цех":{
dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Pink;
break;}
case "На складе":{
dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor Color.Green;
break;}
default:{
dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor Color.White;
break;}}}
Рисунок 17 – Выделение разными цветами строк таблицы с заказами
Здесь в операторе switch определяются действия при соответствии значения статуса строки с определенным значением.
Выделение цветом каждой из строк таблицы заказов, позволяет наглядно отобразить объем заказов на той или иной стадии производства[14; стр. 8].
На вкладке «Новый заказ» вызов диалогового окна списка «Клиенты» осуществляется следующим образом:
private void button1_Click(object sender, EventArgs e)
{
Clients client = new Clients();
client.SelectedValue = comboBox1.SelectedIndex;
client.ShowDialog();
if (client.SelectedValue > -1) comboBox1.SelectedIndex client.SelectedValue;
}
где параметру client.SelectedValue присваивается индекс выбранного элемента из списка выборки. Это сделано для того, чтобы сделать возможным осуществление программным способом выделения строки таблицы соответствующей значению в элементе списка выборки на вкладке «Новый заказ».
2.3 Создание классов для доступа к данным сервера
Для того, чтобы получить данные от сервера необходимо установить подключение к SQL-серверу, отправить запрос и получить данные. Для этого был создан класс «DbClass» (рисунок 18), который позволяет осуществить данные функции. Листинг программного кода данного класса приведен в приложении.
Рисунок 18 – Схема класса «DbClass»
Переменная «cn» является объектом класса «SqlConnection» содержащим строку подключения к серверу, в которой указывается адрес сервера, название базы данных и др.
Функции «sqlNoQuery», «sqlQuery», «sqlTable», используя переменную подключения «cn», позволяют формировать запрос к базе данных и получать ответ в заданном виде.
Для хранения временных данных, получаемых от сервера с использованием класса «DbClass», был создан класс «KolorData». Он обеспечивает хранение полученных данных от сервера в оперативной памяти во время выполнения программы.
Свойства класса «KolorData» (рисунок 19) являются переменными с типом «DataSet». Переменная «db» содержит объект класса «DbClass» с установленным подключением к серверу баз данных.
Рисунок 19 – Свойтсва класса «KolorData»
Свойство «db» класса «KolorData» хранит экземпляр класса «DbClass», который осуществляет подключение к серверу баз данных, а такде обработку запросов класса «KolorData».
Для того, чтобы увеличить производительность работы программы, необходимо чтобы отдельные пользователи могли совместно использовать общий ресурс вроде подключения к источнику данных (серверу), нужно освободить этот ресурс как можно раньше, а запрашивать как можно позже. Для работы в такой архитектуре нужно запросить как можно больше данных, поработать с ними в автономном режиме, а затем вновь подключиться к источнику данных для сохранения изменений.
Самым главным элементом автономной архитектуры ADO.NET является класс «DataSet». Этот класс позволяет загрузить из источника часть данных и работает как контейнер данных
, обеспечивающий знакомую реляционную структуру автономной природы и механизм хранения данных, который не зависит от источника данных. Помимо обеспечения интуитивного и легкого доступа к данным, «DataSet» также хранит историю изменений вплоть до изменений отдельных ячеек, обеспечивая таким образом параллельную работу и сохранение изменений обратно в источник данных [7; стр. 52].
При получении значения переменной «clients» будет задействован код из клока get, в котором происходит обработка sql-запроса к серверу и получение результатов выгружаемых в «DataSet».
При переопределении переменной «clients» задействуется код из блока set, в котором происходит обновление данных находящихся в «DataSet» на сервер.
Для того, чтобы каждый раз не отправлять запрос к базе данных, текущая версия «DataSet» хранится в классе в переменной _clients и будет возвращена при обращении, этому соответствует следующая строка кода:
if (_clients != null) return _clients;
Методы класса «KolorData» (рисунок 20) позволяют осуществить получение данных одного из заказов без возможности сохранения изменений в базу. Это сделано для того, чтобы не осуществлять загрузку всей таблицы из базы данных, а получить лишь ту строку, которая соответствует передаваемому идентификатору.
Рисунок 20 – Методы класса «KolorData»
Сохранение данных расчитанных по формулам осуществляется в функции «saveRaschetZakaza», которая возвращает результат сохранения.
2.4 Привязка данных к элементам управления
Привязка данных к элементам управления осуществляется для того, чтобы осуществить программное автоматическое заполнение значений таких элементов, как списки, таблицы, текстовые поля.
После того, как был осуществлен запрос к базе данных и получен ответ, записанный в переменную «DataSet», можно сразу отобразить данные в элементах управления. Осуществляется эта операция при помощи компонента .Net Framework «BindingSource» и свойства «DataSource».
Компонент BindingSource используется для многих задач. Во-первых, он упрощает привязку элементов управления на форме к данным, предоставляя средства управления денежными единицами, передавая уведомления об изменениях и выполняя другие функции связи между элементами управления Windows Forms и источниками данных. Это достигается путем присоединения компонента BindingSource к источнику данных с помощью свойства DataSource. В сложных скриптах привязки можно дополнительно указать в свойстве DataMember определенный столбец или список в источнике данных. Затем выполняется привязка элементов управления к компоненту BindingSource. Все последующие взаимодействия с данными осуществляются с помощью вызовов компонента BindingSource [8; стр. 11].