Разработка диалоговых экранных форм

Для взаимодействия с внутренней структурой базы данных в программе существуют еще две кнопки «Добавить» и «Изменить». Они предназначены для вывода формы с мастером работы со строками.

Так для внесения новых записей в таблицу существует форма, поэтапно собирающая данные для составления sql-запроса. Попеременный ввод данных в поля формы позволяет работать с таблицами неограниченного размера (рис. 15).

разработка диалоговых экранных форм - student2.ru

Рис. 15 – Форма создания новой записи в таблице

Использование кнопок «Далее» и «Назад» позволяет свободно перемещаться по данным формы, не боясь потерять ранее введенные данные. Вся информация, ранее внесенная в форму, фиксируется, и запоминается до момента закрытия формы.

Кнопка «Готово» активируется в случае заполнения всех ключевых полей, при нажатии на которую, происходит создание подключения и генерация sql-запроса и последующее закрытие формы.

Кнопка «Отмена» активна всегда. В случае заполнения хотя бы одного поля формы, при нажатии на нее появляется предупреждение о закрытии формы и потере внесенных данных.

Для внесения изменений в существующую запись так же используется отдельная экранная форма (рис. 16). Ее отличие от приведенной выше заключается в том, что уже изначально, поля внесенные в таблицу ранее, заполняются в форме.

разработка диалоговых экранных форм - student2.ru

Рис. 16 – Форма изменения существующей записи в таблице

Принцип работы данного мастера так же отличается запросом, формируемым по его завершении, но для пользователя данный аспект работы программы остается незаметным.

В случае прерывания через клавишу «Отмена» внесений изменений в таблицу не происходит.

Внутренняя организация информационной системы

Созданное приложение имеет четко структурированную систему, полностью соответствующую принципам объектно-ориентированного программирования. В частности для минимизации лишнего кода, основанного на повторении алгоритмов.

Все регулярно повторяющиеся функции вынесены в отдельные методы (см. Приложение), такие как:

· Учет точного времени системы;

· Создание лог-записей;

· Создания списка таблиц;

· Обновление данных в таблицах, проверка подключения в sql-серверу;

Так же для взаимодействия между формами используется ряд глобальных переменных, отвечающих за информацию о выбранной таблице, о выбранной строке и о названиях столбцов в таблицах.

Использование подобных приемов позволяет минимизировать объем кода, а так же легко вносить изменения в случае возникновения необходимости.

Обоснование экономической эффективности

При внедрении данной информационной системы преследовался ряд целей, среди которых было обязательное соответствие бюджетным возможностям учреждения. В частности были отброшены варианты, где рассматривалось создание отдельных серверов для работы с системой электронного документооборота.

При внедрении данного программного продукта от предприятия требуется минимальное количество средств на приобретение стороннего ПО, а именно ограничивается приобретением sql-сервера от компании Microsoft. Изменение аппаратной части в учреждении не требуется, т.к. для функционирования данной системы нее требуется отдельных серверных решений, а используются рабочие станции на территории учреждения.

Выводы по третьему разделу

В данном разделе была проведена разработка и описание системы электронного документооборота на предприятии.

В результате проектирования был сделан выбор платформы разработки и были определены все необходимые для функционирования системы программные продукты. Для выбора данного ПО, послужил анализ различных систем и выбор наиболее оптимального для поставленных задач.

Спроектированная информационная система удовлетворяет всем требованиям, поставленным перед проектом руководителем учреждения. Она служит для ведения электронной базы данных со всей необходимой информацией о воспитанниках учреждения, а так же поддерживает возможность совмещения различных таблиц, например ведения кадрового учета предприятия не только по воспитанникам, но и по сотрудникам предприятия.

Заключение

В завершении работы над выпускной квалификационной работы удалось достичь всех поставленных целей и задач.

Был выполнен анализ деятельности предприятия ГБОУ ДОУ д\с №2278 и проанализированы виды и направления деятельности.

Проведен анализ бизнес-процессов, отражающих взаимодействие ГБОУ ДОУ д\с №2278 как с точки зрения внутреннего взаимодействия. Так и с точки зрения взаимодействия с внешней средой. Основная часть бизнес-процессов на предприятии связана с организацией кадровой политики и ведению внутренней документации по своим воспитанникам, т.е. с информацией, составляющей личные дела воспитанников и сотрудников.

В ходе выполнения выпускной квалификационной работы был выполнен анализ программного обеспечения, представленного на рынке информационных продуктов и услуг, предназначенного для автоматизации электронного документооборота в среде малых, средних и крупных предприятий. Было выявлено, что полностью удовлетворяющих потребностям организации продуктов нет, в связи с чем, была поставлена цель в создании собственного программного продукта.

Для создания собственно информационной системы было решено использовать такие продукты, как SQLServer 2012 и VisualStudio 2010 от корпорации Microsoft, т.к. они наиболее полно позволяли реализовать стоящие перед проектом требования. Информационная система позволяет вести электронную базу данных по воспитанникам и сотрудникам учреждения, создать единое хранилище документации, позволяя избегать дублирования и потери данных, а так же формировать единое представление о состоянии дел на предприятии. Переход на данный программный продукт существенно сократит затрат времени на формирование и учет документации по воспитанникам учреждения, а так же позволит экономить денежные средства предприятия.

Были сформированы требования ГБОУ ДОУ д\с №2278, предъявляемые к проектированию и разработке программного продукта.

Для реализации процесса проектирования были использованы такие case-редакторы как BPWinи ERWin.

Реализация самой разработки была выполнена с использованием программных средств среды VisualStudio 2010, на языке разработки C# 4.0 с использованием библиотек для взаимодействия со средой SQL-Server. Было проведено создание пользовательского интерфейса. Проведена отладка программного продукта и готовая программа была представлена для использования в исследуемой организации.

Можно сделать вывод, что предложенная разработка является эффективной системой электронного документооборота для повышения эффективности работы предприятия ГБОУ ДОУ д\с №2278.

Список литературы

1. Карпова, Т.С. Базы данных: модели, разработка, реализация / Т. С. Карпова. – СПб.: Питер, 2011.

2. Маклаков, С. В. BPwin и ERwin. CASE - средства разработки информационных систем / С. В. Маклаков. - М.: Диалог-МИФИ, 2000.

3. Черемных, С.В. Моделирование и анализ систем. IDEF-технологии: практикум / С.В.Черемных, И.О. Семенов, B.C. Ручкин. - М. : Финансы и статистика, 2006.

4. Федорова, Д.Э. CASE-технологии / Д. Э. Федорова, Ю.Д. Сесенов, К.Н. Чижик. - М.: Горячая линия Телеком, Радио и связь, 2005.

5. www.idef.com

6. Шилдт Г. Полное руководство С#4.0 / Вильямс, Москва, Санкт-Петербург, 2001.

7. Роберт Виейра - Программирование баз данных MS SQL Server 2005. Базовый курс . / Вильямс, Москва, Санкт-Петербург, 2001.

8. Чубукова С.Г. Элькин В.Д. Основы правовой информатики / Диалог-МИФИ, 2004

Приложение

Глобальные переменные:

publicstaticstring[] inf; //информация о названии столбцов в таблице

publicstaticstring[] query; //информация о содержании столбцов в таблице

publicstaticstring ID; //информация о выбраннной в dataGridView1 строке

publicstaticboolWquery; //информация о типе запроса. Добавление или изменение

publicstaticstringTime; //информация о времени

public static string Message = ""; //информацияозаписивлог

public static string Table;

Методучетавремени:

publicvoidVremya()

{

//Создаем переменную, содержащую точное время

if (Data.Message != "")

{

DateTimeThToday = DateTime.Now;

if (ThToday.Hour> 10)

Data.Time = ThToday.Hour.ToString() + ":";

else

Data.Time = "0"+ThToday.Hour.ToString() + ":";

if (ThToday.Minute> 10)

Data.Time += ThToday.Minute.ToString() + ":";

else

Data.Time += "0" + ThToday.Minute.ToString() + ":";

if (ThToday.Second> 10)

Data.Time += ThToday.Second.ToString() + " ";

else

Data.Time += "0" + ThToday.Second.ToString() + " ";

//Вписываем в лог значение времени + текст ошибки из глобальной переменной. Переходим на следующую строку

txtLog.Text += Data.Time + Data.Message + Environment.NewLine;

//Автоматическая прокрутка лога

txtLog.SelectionStart = txtLog.Text.Length;

txtLog.ScrollToCaret();

}

Метод выбора таблиц

publicvoidsetTable()

{

//ЗаполняемComboBox

SqlConnection conn = new SqlConnection(Data.connStr);

try

{

conn.Open();

}

catch

{

return;

}

//Заполняем dataGridView2

SqlCommandcmd = new SqlCommand("SELECT name FROM sysobjects WHERE type = 'U'", conn);

SqlDataAdapter DA = new SqlDataAdapter(cmd);

DataSetqw = new DataSet();

DA.Fill(qw);

dataGridView2.DataSource = qw.Tables[0];

conn.Close();

conn.Dispose();

//Заполнение ComboBox списком таблиц

for (int i = 0; i < dataGridView2.RowCount - 1; i++)

cmBoxTable.Items.Add(dataGridView2[0, i].Value.ToString().Trim());

cmBoxTable.SelectedIndex = 0;

}

Методобновленияинформации

public void Reset()

{

//Обновляем данные в видимой таблице dataGridView1

SqlConnection conn = new SqlConnection(Data.connStr);

try

{

conn.Open();

}

catch (SqlException se)

{

//Если подключение отсутсвует, блокирует кнопки работы с базой

Data.Message = "Ошибка подключения к базе: " + se.Message;

btnAdd.Enabled = false;

btnChange.Enabled = false;

btnDel.Enabled = false;

return;

}

string query = "Select * From "+ cmBoxTable.Text;

SqlCommandcmd = new SqlCommand(query, conn);

SqlDataAdapter DA = new SqlDataAdapter(cmd);

DataSetqw = new DataSet();

DA.Fill(qw);

dataGridView1.DataSource = qw.Tables[0];

//Обновляеммассивссодержаниемзаголовков

query = "Select * From " + cmBoxTable.Text;

cmd = new SqlCommand(query, conn);

using (SqlDataReaderdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))

{

Data.inf = new string[dr.FieldCount - 1];

for (int i = 1; i <dr.FieldCount; i++)

Data.inf[i - 1] = dr.GetName(i).ToString().Trim();

}

conn.Close();

conn.Dispose();

//Скрываем первый столбец, содержащий ID строк

dataGridView1.Columns[0].Visible = false;

}

Наши рекомендации