Информационно-аналитическая система для оформления командировочных документов

 















Курсовая работа

по дисциплине «Информатика»

на тему: «Информационно-аналитическая система для оформления командировочных документов»













Оглавление


Введение

. ПРОЕКТИРОВАНИЕ ДАННЫХ

.1 ИСХОДНЫЕ ДАННЫЕ

.2 СТРУКТУРА БАЗЫ ДАННЫХ

.3 СВЯЗЬ МЕЖДУ ТАБЛИЦАМИ

. ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА АЛГОРИТМОВ

.1 ФОРМА «Список преподавателей»

.2 ФОРМА «Список командировок»

. РАЗРАБОТКА ИНТЕРФЕЙСА

.1 Основная форма

.2 Форма «Преподаватели»

.3 Форма «КомандироВки»

. СПРАВОЧНАЯ СИСТЕМА

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ



Введение


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

Данная информационно-аналитическая система была создана с помощью редактора Visual Basic в среде пакета Microsoft Excel 2007. Данный пакет выбран для среды разработки за свои качества , такие как :

.Доступность самого пакета MS Office 2007

.Благодаря встроенным функциям находить простые решения

.Программа сама находит ошибки кода и выделяет их.



1.ПРОЕКТИРОВАНИЕ ДАННЫХ


.1 ИСХОДНЫЕ ДАННЫЕ


Для разработки информационно-аналитической системы была создана рабочая книга Microsoft Excel, содержащая 6 рабочих листов: Преподаватели, Места командировок , Командировки , Лист1, Лист2, Лист3.

Исходная информация находится в таблицах «Преподаватели» (ФИО, Паспорт, Ученая степень, Кафедра, Должность)



«Командировки» (ФИО, паспорт, город, организация, дата начала, дата конца, кафедра, должность, цель)




Таблица «Города» содержит в себе все города России .














1.2 СТРУКТУРА БАЗЫ ДАННЫХ


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


Название поляФорматДопустимые значенияФИОТекстовыйТекстПаспортЧисловойЧислоУч. степеньТекстовыйТекстКафедраТекстовыйТекстДолжностьТекстовыйтекст

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


НазваниеФорматДопустимые значенияГородаТекстовыйТекст

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


НазваниеФорматДопустимые значенияФИОТекстовыйТекстПаспортЧисловойЧислаГородТекстовыйТекстОрганизацияТекстовыйТекстДата началаДатаЧислаДата концаДатаЧислаКафедраТекстовыйТекстДолжностьТекстовыйТекстЦельТекстовыйТекст

1.3 СВЯЗЬ МЕЖДУ ТАБЛИЦАМИ


Связь между таблицами организуется через форму отправки в командировку




2. ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА АЛГОРИТМОВ


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

Главная форма этой системы открывается автоматически с открытием книги Excel. Так же во время открытия книги автоматически проверяется наличие папки "Командировочные листы для печати", если же её нет происходит её создание .Это происходит с помощью макроса:


Private Sub Workbook_Open()

If Dir("C:\Командировочные листы для печати", vbDirectory) = "" Then

MkDir "C:\Командировочные листы для печати"

End If.ShowSub


«Командировочные листы для печати» эта папка является хранилищем готовых к печати документов.

Так же главная форма содержит три кнопки. Кнопка «Начать работу» открывает вторую форму и имеет следующий код :


Private Sub CommandButton1_Click()UserForm12.Show

End Sub


Кнопка «О программе» выводит форму содержащую информацию о программе и её создателе, имей такой код:


Private Sub CommandButton3_Click().Show

End Sub


Кнопка «Выход» закрывает данную форму :


Private Sub CommandButton2_Click()Sub


Как было сказано ранее, нажатием на кнопку «Начать работу» осуществляется вызов второй пользовательской формы Эта форма позволяет непосредственно вызывать формы «Список преподавателей», «Список командировок » и «Назад», нажимая на одноименные кнопки. Кнопка «Назад» служит для закрытия второй формы и возврата на главную , используя код:


Private Sub CommandButton2_Click()UserForm21.Show

End Sub



2.1 ФОРМА «Список преподавателей»



Эта форма содержит в себе ListBox в который выводится список преподавателей с одноименного листа рабочей книги. Позволяет добавлять, удалять, изменять список. А так же перейти к отправке в командировку или вернуться на прошлую форму. Все эти действия выполняются одноименными кнопками «Добавить работника», «Удалить», «Отправить в командировку», «Закрыть».

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

Код формы: Private Sub UserForm_Initialize()

происходит задание ширины столбцов в порядке очереди и заполнение


ListBox1.ColumnWidths = "200;90;80;60;60;80;60;60;200"= Sheets("Преподаватели").UsedRange.Rows.Count.RowSource = "A2:H" + Trim(Str(i))


автоматическая сортировка списка по первому столбцу, со второй строки


Range("A:E").Sort _:=Range("A2"), Order1:=xlAscending, _:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _, DataOption1:=xlSortNormalSub


Рассмотрим коды следующий кнопок и действий.

Код кнопки добавить и последующий форме.

Этот код выводит одноименную форму содержащую TextBox для добавления в таблицу записи. Подобная система вывода форма выбрана мной для того чтобы основные окна формы не были переполнены различными элементами.

выводится форма добавления

Sub CommandButton4_Click()UserForm3.ShowSub




Данная форма имеет 5 TextBox и 2 CommandButton.

Код кнопки «Добавить»:


Private Sub CommandButton1_Click()("Преподаватели").Activate

Dim i As Integer= Sheets("Преподаватели").UsedRange.Rows.Count + 1("Преподаватели").Cells(i, 1) = TextBox1.Value("Преподаватели").Cells(i, 2) = TextBox2.Value("Преподаватели").Cells(i, 3) = TextBox3.Value("Преподаватели").Cells(i, 4) = TextBox4.Value("Преподаватели").Cells(i, 5) = TextBox5.Value

MsgBox ("Работник добавлен").Value = ""

TextBox2.Value = "".Value = "".Value = "".Value = ""Sub


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

Код кнопки «Выход».


Private Sub CommandButton2_Click()UserForm5.ShowSub


Закрывает форму добавления и возвращает нас на форму «Список преподавателей».

Далее на форме «Список преподавателей» есть кнопка «Удалить».

Её код:


Private Sub CommandButton2_Click()(1).Activaten As Integer n = 0

n = MsgBox("Данные будут удалены" & Chr(10) & "Хотите продолжить?", vbOKCancel, "Удаление")

If n = 1 Then= ListBox1.ListIndex.Rows(i + 2).Delete("Данные удалены")("Удаление отменено")If= Sheets("Преподаватели").UsedRange.Rows.Count.RowSource = "A2:H" + Trim(Str(i))UserForm3.ShowSub


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

Кнопка «Изменить»

Изменяет выделенную строку в Listbox

Её код:

Sub KP1_Click()i As Integer, j As Integer, s As String, a()


показываем что необходимо изменить выделенную строку


a = ListBox1.List: i = ListBox1.ListIndex


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


For j = 0 To 4

s = InputBox("Столбец " & j + 1, "Введите новые данные", a(i, j))

Sheets("Преподаватели").Cells(i + 2, j + 1) = s

Next= Sheets("Преподаватели").UsedRange.Rows.Count.RowSource = "A2:H" + Trim(Str(i))

End Sub


Поочередно на экран выводятся запросы с изменением записи в таблице в порядке заполнения. Обновление происходит после закрытия последнего окна.

Кнопка «Отправить в командировку»

Кнопка выводит на экран форму для заполнения:


Private Sub CommandButton5_Click()UserForm3


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


UserForm3.TextBox1.Text = UserForm4.ComboBox1.Text.Show

End Sub




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

Код формы:

Заполнение двух открывающихся списков происходит с помощью кода:


Private Sub UserForm_Initialize()

заполнение ComboBox1= 2Until Sheets("Преподаватели").Cells(i, 1) = Empty.AddItem Sheets("Преподаватели").Cells(i, 1)= i + 1

заполнение ComboBox2= 2Until Sheets("Места командировок").Cells(i, 1) = Empty.AddItem Sheets("Места командировок").Cells(i, 1)

i = i + 1Sub


Для ускорения процесса заполнения при выборе преподавателя его данные автоматически заполняют соответствующие текстовые поля.



Для этого используется следующий код:


Private Sub ComboBox1_Click()Combo Box1.Text = Sheets("Преподаватели"). Cells(ComboBox1.ListIndex + 2, 1) Then= Sheets ("Преподаватели"). Cells(ComboBox1.ListIndex + 2, 4)IfCombo Box1.Text = Sheets("Преподаватели"). Cells (ComboBox1.ListIndex + 2, 1) Then= Sheets ("Преподаватели"). Cells (ComboBox1.ListIndex + 2, 3)IfCombo Box1.Text = Sheets("Преподаватели"). Cells (ComboBox1.ListIndex + 2, 1) Then= Sheets ("Преподаватели"). Cells(ComboBox1.ListIndex + 2, 2)IfComboBox1.Text = Sheets("Преподаватели"). Cells(ComboBox1.ListIndex + 2, 1) Then= Sheets ("Преподаватели"). Cells(ComboBox1.ListIndex + 2, 5)

End IfSub


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












Для вывода календаря этим текстовым полям присвоен следующий код


Private Sub TextBox6_Enter().ShowSubSub TextBox7_Enter()9.ShowSub


А каждому календарю присвоен такой код

следующий код позволяет добавить в текстовое поле дату при двойном щелчке и закрыть форму


Private Sub Calendar1_DblClick().TextBox6.Value = Format(Calendar1.Value, "dd.mm.yyyy")UserForm8SubSub Calendar2_DblClick().TextBox7.Value = Format(Calendar2.Value, "dd.mm.yyyy")UserForm9Sub



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

Выбирая город пользователю откроется список всех городов России. Это поле можно изменять.

Код кнопки «Отправить»


Private Sub CommandButton3_Click()

Sheets("Командировки").Selecti As Integer= Sheets("Командировки ").UsedRange.Rows.Count + 1


данные из текстовых полей переносятся в соответствующие ячейки первой пустой строки рабочего листа


Sheets("Командировки ").Cells(i, 1) = ComboBox1.Value("Командировки ").Cells(i, 2) = TextBox11.Value("Командировки ").Cells(i, 3) = ComboBox2.Value("Командировки ").Cells(i, 4) = TextBox12.Value("Командировки ").Cells(i, 5) = TextBox7.Value("Командировки ").Cells(i, 6) = TextBox6.Value("Командировки ").Cells(i, 7) = TextBox2.Value("Командировки ").Cells(i, 8) = TextBox11.Value("Командировки ").Cells(i, 9) = TextBox9.Value ("Командировка добавлена")

текстовые поля очищаются

ComboBox1.Value = ""

TextBox11.Value = "".Value = "".Value = "".Value = "".Value = "".Value = "".Value = "".Value = "".Value = ""10.Value = ""

End Sub


На рабочем листе ищется первая пустая строка в которую заносятся данные.

Для удобства сделано две кнопки выхода. Первая позволяет вернуться снова на форму «Преподаватели»

Её код:

Sub CommandButton4_Click()("Преподаватели").SelectUserForm4.Show Sub


Вторая позволяет сразу перейти или же вернуться на форму «Список командировок». В зависимости от формы с который была вызвана данная форма.

Её код:

Sub CommandButton5_Click()("Командировки").SelectUserForm4.Show Sub


2.2 ФОРМА «Список командировок»



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

Код кнопки изменить

Код:

Sub CommandButton5_Click()i As Integer, j As Integer, s As String, a()= ListBox1.List: i = ListBox1.ListIndex j = 0 To 8

s = InputBox("Столбец " & j + 1, "Введите новые данные", a(i, j))

Sheets("Командировки").Cells(i + 2, j + 1) = s= Sheets("Командировки").UsedRange.Rows.Count.RowSource = "A2:J" + Trim(Str(i))

End Sub


Кнопка «Печать» копирует три бланка для заполнения, то есть Лист1, Лист2,Лист3. Заполняет их, перемещает в новую книгу , а затем сохраняет в рабочую папку с текущей датой и временем. После чего книга закрывается.

Код кнопки «Печать»:


Private Sub CommandButton6_Click()

Sheets("Лист1").Select("Лист1").Copy After:=Sheets(4)("Лист1 (2)").Range("C14:I14") = TextBox1.Value("Лист1 (2)").Range("B16:K16") = TextBox7.Value("Лист1 (2)").Range("B18:K18") = TextBox8.Value("Лист1 (2)").Range("D20:K20") = TextBox3.Value("Лист1 (2)").Range("C24:k24") = TextBox9.Value("Лист1 (2)").Range("C30:E30") = TextBox5.Value("Лист1 (2)").Range("G30:I30") = TextBox6.Value("Лист1 (2)").Range("J32:K32") = TextBox2.Value("Лист2").Select("Лист2").Copy After:=Sheets(5)("Лист2 (2)").Range("A12:L12") = TextBox1.Value("Лист2 (2)").Range("A20:B20") = TextBox7.Value("Лист2 (2)").Range("C20:D20") = TextBox8.Value("Лист2 (2)").Range("E20") = TextBox3.Value("Лист2 (2)").Range("F20") = TextBox4.Value("Лист2 (2)").Range("G20") = TextBox5.Value("Лист2 (2)").Range("H20") = TextBox6.Value


выделяем Лист3, копируем и заполняем его данными.


Sheets("Лист3").Select("Лист3").Copy After:=Sheets(6)("Лист3 (2)").Range("A18:H18") = TextBox1.Value

Sheets("Лист3 (2)").Range("A20:J20") = TextBox7.Value

Sheets("Лист3 (2)").Range("A22:J22") = TextBox8.Value

Sheets("Лист3 (2)").Range("A24:J24") = TextBox3.Value

Sheets("Лист3 (2)").Range("B32:D32") = TextBox5.Value

Sheets("Лист3 (2)").Range("F32:H32") = TextBox6.Value

Sheets("Лист3 (2)").Range("B34:J34") = TextBox9.Value("Лист4").Select

Sheets("Лист4").Copy After:=Sheets(7)("Лист4 (2)").Range("G5") = TextBox3.Value("Лист4 (2)").Range("A9") = TextBox3.Value



выделяем заполненные листы и перемещаем их в новую рабочую книгу


Sheets(Array("Лист1 (2)", "Лист2 (2)", "Лист3 (2)", "Лист4 (2)")).Select

Sheets(Array("Лист1 (2)", "Лист2 (2)", "Лист3 (2)", "Лист4 (2)")).Move


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


Application.DisplayAlerts = False

ActiveWorkbook.SaveAs Filename:="C:\Командировочные листы для печати & Format(Now, "dd_mm_yyyy_hh_nn_ss") & ".xls", FileFormat:=xlExcel8 _

, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _

CreateBackup:=False

Application.DisplayAlerts = True

ActiveWorkbook.Close (savechanges = False)

MsgBox ("Бланки для печати сохранены в C:\Командировочные листы для печати)Sub


Кнопка «Назад» возвращает нас на форму выбора списка.

Код:


Private Sub CommandButton3_Click()UserForm6.ShowSub



3. РАЗРАБОТКА ИНТЕРФЕЙСА


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

Графический интерфейс состоит из набора управляющих элементов который нам предоставляет Visual Basic for Applications входящий в пакет MS Office 2007. В данной курсовой работе будут использоваться ListBox, ComboBox, CommandButton и TextBox.

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

Информационно-аналитическая система состоит из десяти пользовательских форм. Главная форма (начало работы с программой) автоматически запускается при открытии рабочей книги Excel. На форме отображается название приложения и присутствуют 3 кнопки: «Начать», «Выход» и «О программе».

При нажатии на кнопку «О программе» появляется форма, содержащая информацию о том, кто разработал данную информационно-аналитическую систему.

Нажатие кнопки «Начать» вызывает вторую пользовательскую форму, на которой имеется 3 кнопки: «Список преподавателей», «Список командировки» и «Выход». При нажатии на какую-либо из этих трех кнопок выводится форма с соответствующим кнопке названием, содержащая данные из одноименных листов рабочей книги Excel.

Формы «Список преподавателей», «Список командировки» содержат элементы ListBox, CommandButton. Формы добавить для добавления командировки и преподавателя в базу данных содержат ComboBox, TextBox, CommandButton и «Календарь 11.0».

Формы «Справка», «Изменить» содержит элемент Label с текстовым описанием программы и ее разработчика.

Все формы информационно-аналитической системы оформлены изображением указателя на развилке дорог.


3.1 Основная форма


При нажатии на кнопку «Начать работу» вы перейдет на форму выбора рабочей таблицы(«Преподаватели» или «Командировки»)

При нажатии кнопки «О программе» выводится окно справки. Для закрытия которого необходимо нажать кнопку «Закрыть».

Для выхода из программы необходимо нажать кнопку «Выход»

Для запуска программы на листе Преподаватели находится кнопка Старт.




3.2 Форма «Преподаватели»


Форма содержит пять кнопок. Для добавления нового работника необходимо нажать кнопку «Добавить работника» после чего перед вами появится окно для заполнения данных о новом сотруднике :



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

Для удаления сотрудника необходимо выбрать его в списке и нажать кнопку «Удалить» после чего для безопасности данных выйдет запрос с подтверждением уверенности ваших действий.

Для изменения данных сотрудника необходимо выделить нужного человека в списке и нажать кнопку «Изменить». После чего поочередно на экран будут выводится запросы для введения новых данных(если значение необходимо оставить прежне просто нажмите ОК)

Если вы хотите отправить в командировку преподавателя из списка выделите его и нажмите «Отправить в командировку», данные о нем автоматически заполнят форму с известными о нем данными. Пустые поля необходимо заполнить. Город можно выбрать из списка либо заполнить самому. Для выбора дат необходимо дважды кликнуть по нужной дате в появившемся календаре. После чего нажать на кнопку «Отправить», в подтверждение о успешном выполнение операции выйдет текстовое сообщение после чего поля очистятся.

Для закрытия и перехода на нужную форму нажмите одну из двух кнопок: «Вернуться к списку командировок» или же «Вернуться к списку преподавателей».


3.3 Форма «КомандироВки»



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

Для изменения данных сотрудника необходимо выделить нужного человека в списке и нажать кнопку «Изменить». После чего поочередно на экран будут выводится запросы для введения новых данных(если значение необходимо оставить прежне просто нажмите ОК) Для удаления сотрудника необходимо выбрать его в списке и нажать кнопку «Удалить» после чего для безопасности данных выйдет запрос с подтверждением уверенности ваших действий.

Для возвращение в меню выбора таблицы нажмите кнопку «Назад»

программный аналитический интерфейс справочный


4. СПРАВОЧНАЯ СИСТЕМА


Справочные данные о информационно-аналитической системе можно получить, нажав кнопку «О программе» на главной форме. Окно «О программе» содержит информацию о том, кто разработал данную систему




ЗАКЛЮЧЕНИЕ


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

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

Главной же особенностью этой системы является её простота. Интерфейс понятен и удобен любому пользователю.



СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ


1.А. Гарнаев «Самоучитель VBA»

.Билл Джелен «VBA и макросы в Microsoft Office Excel 2007»

.Джон Уокенбах «Microsoft Office Excel 2007. Профессиональное программирование на VBA»

.П. Эйткен «Интенсивный курс программирования в Excel за выходные»

.С. Роман «Использование макросов в Excel»

.С. Н. Белоусова, И. А. Бессонова «Основные принципы и концепции программирования на языке VBA в Excel»

.Сергей Кашаев «Офисные решения с использованием Microsoft Excel 2007 и VBA»


Курсовая работа по дисциплине «Информатика» на тему: «Информационно-аналитическая с

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ