Информационно-аналитическая система складского помещения

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    5,69 Мб
  • Опубликовано:
    2014-12-20
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Информационно-аналитическая система складского помещения















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

Информационно-аналитическая система складского помещения

Содержание

Введение

. Проектирование информационно-логической модели

.1 Задание на курсовую работу

.2 Описание таблиц и полей данных

.3 Организация связей между данными

. Проектирование и разработка алгоритмов

.1 Начало работы с программой

.2 Алгоритмы добавления данных

.3 Алгоритмы изменения данных

.4 Алгоритмы удаления данных

.5 Алгоритмы сортировки данных

.6 Алгоритмы поиска данных

. Проектирование пользовательского интерфейса

.1 Главное меню программы

.2 Основные формы программы

.3 Этапы загрузки данных

.4 Справочная система

Заключение

Список используемой литературы

Введение

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

Именно поэтому спрограммировал такую полезную программу, как "Склад". "Склад" представляет собой учетно-аналитическую систему, которая ведет учет всей продукции, ее количество и другую информацию о товарах.

Удобный интерфейс и возможность быстрой работы с товарами заметно ускорит процесс обработки информации и соответственно скорость работы.

Сама программа может вмещать до 32000 наименований товаров и полностью отвечает потребностям складских помещений.

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

. На складе, как правило, имеет место систематический приход и уход товаров.

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

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

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

Для программирования поставленной задачи я воспользовался языком программирования Visual basic for application.

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

1. Проектирование информационно-логической модели

.1 Задание на курсовую работу

Анализ учета складского помещения.

.2 Описание таблиц и полей данных

Рис 1.

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

Название колонки

Тип данных

Название

variant

номер

variant

количество

integer

цена

double

общая цена

double

дата поступления

date

поставщик

variant



В таблице указанны типы данных для всех колонок. Колонка "общая цена" формируется путем умножения значения колонки "количество" на значение колонки "цена".

Рис. 2.

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

.3 Организация связей между данными

Эти таблицы связанны между собой по следующей схеме:

Таблица 1


Таблица 2

Поле 1


Поле 1

Поле 2


Поле 2

Поле 3

Поле 4


Поле 4

Поле 5


Поле 5

Поле 6


Поле 6

Поле 7


Поле 7



2. Проектирование и разработка алгоритмов

.1 Начало работы с программой

Рис. 3.

При назатии на первые 4 кнопки формы "Главная страница" отрываются одноименные пользовательские формы. Пятая кнопка приводит к выходу из программы.

Условное обозначение

Название кнопки в конструкции VBA

1

Cmb_togo_UF2

2

Cmb_togo_UF4

3

Cmb_togo_UF5

4

Cmb_togo_UF8

5

Cmb_End


Кнопка "Имеющиеся товары" открывает пользовательскую форму"Имеющиеся товары". Алгоритм работы данной кнопки в конструкции VBA:

Sub Cmb_togo_UF2_Click().Hide 'скрыть активное окно.Show 'показать 4-е окноSub.

Кнопка "Продать товары" открывает пользовательскую форму"Продать товары". Алгоритм работы данной кнопки в конструкции VBA:

Sub Cmb_togo_UF4_Click().Hide 'скрыть активное окно.Show 'показать 4-е окноSub

Кнопка "О программе" открывает пользовательскую форму"О программе". Алгоритм работы данной кнопки в конструкции VBA:

Sub Cmb_togo_UF5_Click().Hide 'скрыть активное окно.Show 'показать 5-е окноSub

Кнопка "Справка" открывает пользовательскую форму"Справка". Алгоритм работы данной кнопки в конструкции VBA:

Sub Cmb_togo_UF8_Click().Hide 'скрыть активное окно.Show 'показать 8-е окноSub

Кнопка "Выход" заканчивает работу программы и выходит из нее. Алгоритм работы данной кнопки в конструкции VBA:

Sub Cmb_End_Click()Sub

При включении главной формы происходит ее операция инициализации,в процессе которой таблице 1 задается цвет шапки, и операция активации, в процессе чего активируется 1я таблица и сортируется по 1му столбцу. Алгоритм данных операций в конструкции VBA соответственно:

(Для инициализации)

Sub UserForm_Initialize()("Имеющиеся товары").Range(Cells(1, 1), Cells(1, 7)).SelectSelection.Interior= xlGray16= xlAutomatic= 49407= 0= 0WithSub

(Для активации)

Sub UserForm_Activate()

'включаем функцию сортировки перед сменой формы("Имеющиеся товары").Activatei As ByteshR As VariantshR = ThisWorkbook.Worksheets("Имеющиеся товары").Range("A1").Activate 'шапка таблицы= 32000r As Range 'диапазон ячеек таблицы с шапкойr = Range(shR.Cells(1, 1), shR.Cells(i, 7)).Sort key1:=r.Cells(2, 1), key2:=r.Cells(2, 2), key3:=r.Cells(2, 3), Header:=xlYesSub

.2 Алгоритмы добавления данных

Рис. 4.

Кнопка "Добавить" формы "Имеющиеся товары" переходит к пользовательскому окну "ввод данных". Алгоритм работы данной кнопки в конструкции VBA:

Private Sub Cmb_Add_Items_Click()

UF2.Hide.ShowSub

Форма содержит элемент Listbox(I_tovar),которая при помощи метода "Activate" загружается данными таблицы 1. Алгоритм в конструкции VBA:

Sub UserForm_Activate()

Лист1.Activatei As Integer, n As Byte_tovar.MultiSelect = fmMultiSelectExtendedI_tovar= 7 'количество колонок

ColumnWidths = "130,80,80,80,80,90,80" 'ширина столбцовi = 2 To 32000

If Cells(i + 1, 1) = "" Then

AddItem Cells(i, 1)(I_tovar.ListCount - 1, 1) = Cells(i, 2)(I_tovar.ListCount - 1, 2) = Cells(i, 3)(I_tovar.ListCount - 1, 3) = Cells(i, 4)(I_tovar.ListCount - 1, 4) = Cells(i, 5)(I_tovar.ListCount - 1, 5) = Cells(i, 6)(I_tovar.ListCount - 1, 6) = Cells(i, 7)

Exit Sub

AddItem Cells(i, 1)(I_tovar.ListCount - 1, 1) = Cells(i, 2)(I_tovar.ListCount - 1, 2) = Cells(i, 3)(I_tovar.ListCount - 1, 3) = Cells(i, 4)(I_tovar.ListCount - 1, 4) = Cells(i, 5)(I_tovar.ListCount - 1, 5) = Cells(i, 6)(I_tovar.ListCount - 1, 6) = Cells(i, 7)

End IfWithSub

Кнопка "Печать" выводит все данные, находящиеся в LISTBOXе(I_tovar) пользовательского окна "Имеющиеся товары" на печать. Алгоритм работы данной кнопки в конструкции VBA:

Private Sub Cmb_Print_Click()

'вывод на печать("Лист2").PrintOutSub

Кнопка "Назад" выходит на предыдущую пользовательскую форму. Алгоритм работы данной кнопки в конструкции VBA:

Sub Cmb_Nazad_Click().Hide.ShowSub

Кнопка "Выход" выходит из программы. Алгоритм работы данной кнопки в конструкции VBA:

Private Sub Cmb_End_Click()Sub

Рис. 5.

Форма "Ввод данных" (рис. 5) имеет 6 текстовых окон для ввода данных о товаре, после заполнения которых необходимо нажать кнопку "Добавить" для сохранения данных.

Алгоритм работы кнопки "Добавить" в конструкции VBA:

Sub Cmb_Add_Click()n1 As Variant, n2 As Variant, n3 As Integer, n4 As Double, n5 As Date, n6 As Varianti As Integer, n As Byte, j As IntegerЛист1TextBox1.Value = Empty Or TextBox2.Value = Empty Or TextBox3.Value = Empty Or TextBox4.Value = Empty Or TextBox5.Value = Empty Or TextBox6.Value = Empty ThenMsgBox("не все поля заполнены", vbInformation) 'выход окна оповещенияSub 'если не все поля заполнены, то досрочный выход из событияIf

' проверка на имеющийся номерj = 1 To UsedRange.Rows.CountTextBox1.Text = Cells(j, 2) Then("номер уже используется")SubIf= TextBox1.Text= TextBox2.Text= TextBox3.Text= TextBox4.Text= TextBox5.Value= TextBox6.Text

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


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

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

Алгоритм в конструкции VBA:

Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If KeyCode = vbKeyV And Shift = 2 Then= 0IfSub

Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If InStr("0123456789", ChrW(KeyAscii)) = 0 Then= 0IfSubSub TextBox4_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)KeyCode = vbKeyV And Shift = 2 Then= 0IfSub

Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If InStr("0123456789", ChrW(KeyAscii)) = 0 Then= 0IfSub

Текстовое поле "Дата" всегда показывает дату момента добавления груза и недоступно для изменения. Алгоритм в конструкции VBA:

Sub UserForm_Initialize().Text = Date.Enabled = FalseSub

При активации формы все текстовые поля принимают пустые значения. Алгоритм в конструкции VBA:

Sub UserForm_Activate()

'Очистка полей перед активацией формы.Value = "".Value = "".Value = "".Value = "".Value = ""Sub

Кнопка "Назад" выходит на предыдущую пользовательскую форму, перед этим сортируя таблицу1,в последствии чего изменяется и элемент Listbox(I_tovar) формы "Имеющиеся товары" . Алгоритм в конструкции VBA:

Private Sub Cmb_Nazad_Click()

'включаем функцию сортировки перед сменой формыi As IntegershR As VariantshR = ThisWorkbook.Worksheets("Имеющиеся товары").Range("A1").Activate 'шапка таблицы= 32000r As Range 'диапазон ячеек таблицы с шапкойr = Range(shR.Cells(1, 1), shR.Cells(i, 7)).Sort key1:=r.Cells(2, 1), key2:=r.Cells(2, 2), key3:=r.Cells(2, 3), Header:=xlYes.Hide.ShowSub

Кнопка "Выход" приводит к выходу из программы. Алгоритм в конструкции VBA:Sub Cmb_End_Click()Sub

.3 Алгоритмы изменения данных

Рис. 6.

Пользовательская форма "Продать товары" Имеет объект ListBox1, аналогичный Listbox(I_tovar) для синхронизации данных, а также три кнопки:

"Добавить к продаже", "назад" и "Выход".заполняется методом "Activate" с таблицы1. Алгоритм в конструкции VBA:Sub UserForm_Activate()

Лист1.Activatei As Integer.Font.Size = 12.MultiSelect = fmMultiSelectMultiListBox1= 7 'количество колонок= "130,80,80,80,80,90,80" 'ширина столбцовi = 2 To 32000Cells(i + 1, 1) = "" Then

AddItem Cells(i, 1)(ListBox1.ListCount - 1, 1) = Cells(i, 2)(ListBox1.ListCount - 1, 2) = Cells(i, 3)(ListBox1.ListCount - 1, 3) = Cells(i, 4)(ListBox1.ListCount - 1, 4) = Cells(i, 5)(ListBox1.ListCount - 1, 5) = Cells(i, 6)(ListBox1.ListCount - 1, 6) = Cells(i, 7)

Exit Sub

AddItem Cells(i, 1)(ListBox1.ListCount - 1, 1) = Cells(i, 2)(ListBox1.ListCount - 1, 2) = Cells(i, 3)(ListBox1.ListCount - 1, 3) = Cells(i, 4)(ListBox1.ListCount - 1, 4) = Cells(i, 5)(ListBox1.ListCount - 1, 5) = Cells(i, 6)(ListBox1.ListCount - 1, 6) = Cells(i, 7)

End IfWithSub

Кнопка "Назад" выходит на предыдущую пользовательскую форму. Алгоритм работы кнопки "Назад" в конструкции VBA:

Sub Cmb_Nazad_Click().Hide.ShowSub

Кнопка "Выход" выходит на предыдущую пользовательскую форму. Алгоритм работы кнопки "Выход" в конструкции VBA:

Sub Cmb_End_Click()Sub

Кнопка "Добавить к продаже" копирует выделенные в ListBox1 строки и добавляет их в новую таблицу 2, после чего переходит к пользовательскому окну "Указать количество".

Sub Cmb_Add_Items_Click()

Лист2.Activate

Лист2.Range(Cells(2, 1), Cells(32000, 7)).Select.ClearContents

'создаем новый список из данной таблицыi As Integer, r As Integer, j As Integer= 2 ' начало по строкамi = 0 To Me.ListBox1.ListCount - 1Me.ListBox1.Selected(i) Thenj = 0 To Me.ListBox1.ColumnCount - 1("Лист2").Cells(r, j + 1) = Me.ListBox1.List(i, j)= r + 1If.Hide.ShowSub

Рис. 7.

Пользовательское окно "Указать количество" Имеет 7 пассивных текстовых полей,которые нельзя изменять, и одно активное,в котором необходимо указывать количество товаров, необходимое для продажи.Также оно имеет 3 кнопки:

"Далее", "Назад" и "Выход".

Методом "Activate" форма заполняет пассивные поля. . Алгоритм в конструкции VBA:

Sub UserForm_Activate()

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

Лист2.Activate= 2UF3Sheets("Лист2").Cells(2, 1) <> "" Then.Text = Sheets("Лист2").Cells(2, 1).Text = Sheets("Лист2").Cells(2, 2).Text = Sheets("Лист2").Cells(2, 3).Text = Sheets("Лист2").Cells(2, 4).Text = Sheets("Лист2").Cells(2, 5).Text = Sheets("Лист2").Cells(2, 6).Text = Sheets("Лист2").Cells(2, 7): MsgBox ("нет данных").Hide.ShowSubIfWithSub

Также методом "Initialize" пассивные текстовые поля поля блокируются для ввода,а так же активному текстовому полю задается нулевое значение. Алгоритм в конструкции VBA:

.Value = 0

'делаем невозможным изменение полей.Enabled = False.Enabled = False.Enabled = False.Enabled = False.Enabled = False.Enabled = False.Enabled = False

Кнопкой "Далее" указанное для продажи количество товаров вычитаетя из общего количества имеющихся товаров,и результат отражается в изначальной таблице1,а также последним нажатием открывается аользовательская форма "Бланк печати товаров,готовых к продаже",в которую загружаются данные о продоваемых товарах. Алгоритм данной кнопки в конструкции VBA:

Sub Cmb_Next_Click()Cells(i + 1, 1) <> "" ThenTextBox4 = Empty Or Val(TextBox4.Value) > Val(TextBox3.Value) Then("не все поля заполнены или количество больше имеющегося")Sub= 2Sheets("Имеющиеся товары").Cells(K, 1).Text <> ""Sheets("Имеющиеся товары").Cells(K, 2).Text = TextBox2.Text Then Sheets("Имеющиеся товары").Cells(K, 3) = Sheets("Имеющиеся товары").Cells(K, 3) - TextBox4.Value= K + 1

'Sheets("Имеющиеся товары").Cells(2, 3) = Sheets("Имеющиеся товары").Cells(2, 3) - TextBox4.Value

'если последующая ячейка не равна нулю, заполняем строку и увеличиваем на 1 счетчик

'если нет,заполняем строку и открываем форму Userform7("Лист2").Cells(i, 3) = TextBox4.ValueSheets("Лист2").Cells(i, 1) <> "" Then.TextBox1.Text = Sheets("Лист2").Cells(i + 1, 1).TextBox2.Text = Sheets("Лист2").Cells(i + 1, 2).TextBox3.Text = Sheets("Лист2").Cells(i + 1, 3).TextBox5.Text = Sheets("Лист2").Cells(i + 1, 4).TextBox6.Text = Sheets("Лист2").Cells(i + 1, 5).TextBox7.Text = Sheets("Лист2").Cells(i + 1, 6).TextBox8.Text = Sheets("Лист2").Cells(i + 1, 7)IfIf= i + 1= 1TextBox4 = Empty Or Val(TextBox4.Value) > Val(TextBox3.Value) Then("не все поля заполнены или количество больше имеющегося")Sub= 2Sheets("Имеющиеся товары").Cells(K, 1).Text <> ""Sheets("Имеющиеся товары").Cells(K, 2).Text = TextBox2.Text Then Sheets("Имеющиеся товары").Cells(K, 3) = Sheets("Имеющиеся товары").Cells(K, 3) - TextBox4.Value= K + 1("Лист2").Cells(i, 3) = TextBox4.ValueSheets("Лист2").Cells(i, 1) <> "" Then.TextBox1.Text = Sheets("Лист2").Cells(i + 1, 1).TextBox2.Text = Sheets("Лист2").Cells(i + 1, 2).TextBox3.Text = Sheets("Лист2").Cells(i + 1, 3).TextBox5.Text = Sheets("Лист2").Cells(i + 1, 4).TextBox6.Text = Sheets("Лист2").Cells(i + 1, 5).TextBox7.Text = Sheets("Лист2").Cells(i + 1, 6).TextBox8.Text = Sheets("Лист2").Cells(i + 1, 7)IfIf.Hide.ShowIfSub

Также текстовое поле Textbox4 имеет ограничение на ввод и может принимать только числовые значения. Алгоритм в конструкции VBA:

Sub TextBox4_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)KeyCode = vbKeyV And Shift = 2 Then= 0IfSubSub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)InStr("0123456789", ChrW(KeyAscii)) = 0 Then= 0IfSub

Кнопка "Назад" выходит на пользовательскую форму "Продать товары".

Алгоритм данной кнопки в конструкции VBA:

Sub Cmb_Nazad_Click().Hide.ShowSub

Кнопка "Выход" выходит из программы. Алгоритм данной кнопки в конструкции VBA:Sub Cmb_End_Click()Sub

Рис. 8.

Пользовательская форма "Бланк печати товаров, готовых к продаже" имеет объект Listbox1,который загружает список продаваемых товаров с таблицы2,а так же 3 кнопки: "Печать", "Назад" и "Выход".загружается методом "Activate" данными с таблицы 2.

Алгоритм в конструкции VBA:

Private Sub UserForm_Activate()

Лист2.Activatei As Integer.MultiSelect = fmMultiSelectExtendedListBox1= 7 'количество колонок= "130,80,80,80,80,90,80" 'ширина столбцовi = 2 To 32000Cells(i + 1, 1) = "" Then

AddItem Sheets(2).Cells(i, 1)(ListBox1.ListCount - 1, 1) = Sheets(2).Cells(i, 2)(ListBox1.ListCount - 1, 2) = Sheets(2).Cells(i, 3)(ListBox1.ListCount - 1, 3) = Sheets(2).Cells(i, 4)(ListBox1.ListCount - 1, 4) = Sheets(2).Cells(i, 5)(ListBox1.ListCount - 1, 5) = Sheets(2).Cells(i, 6)(ListBox1.ListCount - 1, 6) = Sheets(2).Cells(i, 7)

Exit Sub

AddItem Sheets(2).Cells(i, 1)(ListBox1.ListCount - 1, 1) = Sheets(2).Cells(i, 2)(ListBox1.ListCount - 1, 2) = Sheets(2).Cells(i, 3)(ListBox1.ListCount - 1, 3) = Sheets(2).Cells(i, 4)(ListBox1.ListCount - 1, 4) = Sheets(2).Cells(i, 5)(ListBox1.ListCount - 1, 5) = Sheets(2).Cells(i, 6)(ListBox1.ListCount - 1, 6) = Sheets(2).Cells(i, 7)

End IfWithSub

склад товар алгоритм интерфейс


Private Sub Cmb_Print_Click()

'вывод на печать("Лист2").PrintOutSub

Кнопка "Выход"выходит из программы. Алгоритм данной кнопки в конструкции VBA:

Private Sub Cmb_End_Click()Sub

Кнопка "Назад" выводит на предыдущее пользовательское окно.. Алгоритм данной кнопки в конструкции VBA:

Sub Cmb_Nazad_Click().Hide.ShowSub

Рис. 9.

Пользовательская форма "Имеющиеся товары" имеет функцию изменения строки.

Алгоритм данной кнопки в конструкции VBA:

Private Sub CommandButton8_Click()

Лист3.Activate

Лист3.Range(Cells(2, 1), Cells(3, 7)).Select.ClearContents

'создаем новый список из данной таблицыi As Integer, r As Integer, j As Integer= 2 ' начало по строкамi = 0 To Me.I_tovar.ListCount - 1Me.I_tovar.Selected(i) Thenj = 0 To Me.I_tovar.ColumnCount - 1("Лист3").Cells(r, j + 1) = Me.I_tovar.List(i, j)= r + 1If.ShowSub

Рис. 10.

На этом этапе вбиваются новые данные, причем 3 текстовых поле скрыты для изменения или ограниченны им.Затем нажимается кнопка "Сохранить" и новые данные меняют старые.

Алгоритм данной кнопки в конструкции VBA:

Sub CommandButton1_Click()

Dim n1 As Variant, n2 As Variant, n3 As Variant, n4 As Variant, n5 As Date, n6 As Variant

Dim i As Integer, n As Byte, j As IntegerK As IntegerTextBox1.Text = Empty Or TextBox2.Text = Empty Or TextBox3.Text = Empty Or TextBox4.Text = Empty Or TextBox5.Text = Empty Or TextBox6.Text = Empty ThenMsgBox("не все поля заполнены.Вы не выбрали изменяемую строку на предыдущем этапе! ", vbInformation) 'выход окна оповещенияSub 'если не все поля заполнены, то досрочный выход из событияIf

TextBox5.Value = TextBox3.Value * TextBox4.Value

Worksheets("Имеющиеся товары").Activate("Лист3").Cells(3, 1) = TextBox1.Text("Лист3").Cells(3, 2) = TextBox2.Text("Лист3").Cells(3, 3) = TextBox3.Text("Лист3").Cells(3, 4) = TextBox4.Text("Лист3").Cells(3, 5) = TextBox5.Text("Лист3").Cells(3, 7) = TextBox6.Text("Лист3").Cells(3, 6) = TextBox7.Text= 2Worksheets("Имеющиеся товары").Cells(K, 1).Text <> ""Sheets("Имеющиеся товары").Cells(K, 2).Text = Sheets("Лист3").Cells(2, 2).Text Then Sheets("Имеющиеся товары").Cells(K, 1).Value = Sheets("Лист3").Cells(3, 1).ValueSheets("Имеющиеся товары").Cells(K, 2).Text = Sheets("Лист3").Cells(2, 2).Text Then Sheets("Имеющиеся товары").Cells(K, 2).Value = Sheets("Лист3").Cells(3, 2).ValueSheets("Имеющиеся товары").Cells(K, 2).Text = Sheets("Лист3").Cells(2, 2).Text Then Sheets("Имеющиеся товары").Cells(K, 3).Value = Sheets("Лист3").Cells(3, 3).ValueSheets("Имеющиеся товары").Cells(K, 2).Text = Sheets("Лист3").Cells(2, 2).Text Then Sheets("Имеющиеся товары").Cells(K, 4).Value = Sheets("Лист3").Cells(3, 4).ValueSheets("Имеющиеся товары").Cells(K, 2).Text = Sheets("Лист3").Cells(2, 2).Text Then Sheets("Имеющиеся товары").Cells(K, 5).Value = Sheets("Лист3").Cells(3, 5).ValueSheets("Имеющиеся товары").Cells(K, 2).Text = Sheets("Лист3").Cells(2, 2).Text Then Sheets("Имеющиеся товары").Cells(K, 6).Value = Sheets("Лист3").Cells(3, 6).ValueSheets("Имеющиеся товары").Cells(K, 2).Text = Sheets("Лист3").Cells(2, 2).Text Then Sheets("Имеющиеся товары").Cells(K, 7).Value = Sheets("Лист3").Cells(3, 7).Value= K + 1.Hide.Hide.ShowSub

Рис. 11.

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

Алгоритм данной кнопки в конструкции VBA:

Private Sub UserForm_Activate().Hide.ShowSub

2.4 Алгоритмы удаления данных

Кнопка "удалить строку" (Рис. 4.) удаляет строку из Listbox(I_tovar). Алгоритм работы данной кнопки в конструкции VBA:

Private Sub Cmb_Delete_item_Click()i As Integer, r As Integer, j As Integer, a As Integer, b As Rangeimya As Integer, shR As Variant("Имеющиеся товары").Activate

'нахождение выденной строки= 32001 ' начало по строкамi = 0 To Me.I_tovar.ListCount - 1Me.I_tovar.Selected(i) Thenj = 0 To Me.I_tovar.ColumnCount - 1("Имеющиеся товары").Cells(r, j + 1) = Me.I_tovar.List(i, j)= r + 1If

'Удаление строкиimya = 1 To 32000Cells(32001, 1) = Cells(imya, 1) Then("Имеющиеся товары").Range(Cells(imya, 1), Cells(imya, 7)).Select.ClearContentsMsgBox("строка успешно удалена.", vbInformation, "Окно сообщений")SubIf

'сортируем измененную БДshR = ThisWorkbook.Worksheets("Имеющиеся товары").Range("A1").Activate 'шапка таблицы= 32000b = Range(shR.Cells(1, 1), shR.Cells(a, 7)).Sort key1:=b.Cells(2, 1), key2:=b.Cells(2, 2), key3:=b.Cells(2, 3), Header:=xlYesSub

Кнопка "Удалить все" (Рис4.)удаляет все данные с Listbox(I_tovar) и делает его пустым. Алгоритм работы данной кнопки в конструкции VBA:

Private Sub Cmb_Clear_Click()

Dim i As Rangea As Byte= MsgBox("БД будет безвозвратно удалена.Вы уверенны?", vbYesNo, "Окно сообщений")a = 6 Then("Имеющиеся товары").Activatei = Range(Cells(2, 1), Cells(32000, 7)).ClearMsgBox("БД успешно удалена.", vbInformation, "Окно сообщений")IfSub

2.5 Алгоритмы сортировки данных

Рис. 12.

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

Алгоритм работы данных лейблов в конструкции VBA соответственно:

Private Sub Label2_Click()

'включаем функцию сортировки перед сменой формы("Имеющиеся товары").Activatei As ByteshR As VariantshR = ThisWorkbook.Worksheets("Имеющиеся товары").Range("A1").Activate 'шапка таблицы= 255r As Range 'диапазон ячеек таблицы с шапкойr = Range(shR.Cells(1, 1), shR.Cells(i, 7)).Sort key1:=r.Cells(2, 1), Header:=xlYes.Hide.Show

End SubSub Label2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label9.Visible = TrueSub

И

Sub Label5_Click()

'сортируем по цене("Имеющиеся товары").Activatei As LongshR As VariantshR = ThisWorkbook.Worksheets("Имеющиеся товары").Range("D1").Activate 'шапка таблицы= 32000r As Range 'диапазон ячеек таблицы с шапкойr = Range(shR.Cells(1, 1), shR.Cells(i, 7)).Sort key1:=r.Cells(2, 4), Header:=xlYes.Hide.ShowSub

Private Sub Label5_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label10.Visible = TrueSub

2.6 Алгоритмы поиска данных

Рис. 13.

В пользовательской форме "Имеющиеся товары" возможен поиск товара по названию.

Алгоритм работы данной кнопки в конструкции VBA:

Private Sub CommandButton9_Click()iText$iAddress$iCount&$ = TextBox1iText$ <> "" ThenThisWorkbook.Worksheets(1).[A:G]iCell As RangeiCell = .Find(iText$, , xlValues, xlPart)Not iCell Is Nothing Then$ = iCell.Address_tovar.Clear_tovar.AddItem_tovar.List(iCount&, 0) = iCell(1, 1)_tovar.List(iCount&, 1) = iCell(1, 2)_tovar.List(iCount&, 2) = iCell(1, 3)_tovar.List(iCount&, 3) = iCell(1, 4)_tovar.List(iCount&, 4) = iCell(1, 5)_tovar.List(iCount&, 5) = iCell(1, 6)_tovar.List(iCount&, 6) = iCell(1, 7)& = iCount& + 1iCell = .FindNext(iCell)While iAddress$ <> iCell.AddressIfWith.SetFocus"Необходим образец для поиска", , ""IfSub

3. Проектирование пользовательского интерфейса

.1 Главное меню программы

Рис. 14.

3.2 Основные формы программы

Рис. 15.

Форма "Имеющиеся товары" представляет собой список всех товаров, имеющихся на складе.

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

Рис. 16.

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

.3 Этапы загрузку данных


3.4 Справочная система

Рис. 18.

Заключение

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

Для программирования поставленной задачи я воспользовался языком программирования Visual basic for application. Он отвечает всем требованиям, удобен в работе а главное, VBA интегрирован с программой Excel и делает акцент на работу с базами данных, что и нужно для решения поставленной задачи

Список используемой литературы

1. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. 2009 г.

. Глушаков С.В., Ломотько Д.В. Базы данных: Учебный курс. 2010 г.

. Карпова Т.С. Базы данных: модели, разработка, реализация. 2009 г.

. Гофман В.Э., Хомоненко А.Д. Работа с базами данных. 2008 г.

. Григорьев Ю.А., Ревунков Г.И. Банки данных: Учеб. Для вузов. 2011 г.

. Крёнке Д. Теория и практика построения баз данных, 8-е изд. 2009 г.

Похожие работы на - Информационно-аналитическая система складского помещения

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!