- •Содержание
- •1. Задание на программирование
- •2. Определение целей и выделение задач
- •3. Анализ входной и выходной информации
- •3.1. Функциональные зависимости между данными
- •3.2. Структура взаимосвязей между исходными и результирующими данными
- •4. Техническое задание на программирование
- •4.1. Обоснование типа операционной системы
- •4.2. Выбор языка программирования
- •4.5. Перенос программы на различные платформы
- •5. Технический проект
- •5.1. Определение состава программного и технического обеспечения (операционная система, язык программирования, электронные таблицы, аппаратные средства компьютера)
- •5.2. Разработка детального алгоритма обработки данных:
- •5.2.1. Общий алгоритм реализации программного продукта
- •5.2.2. Функционально-модульная структура программы (состав, назначение и взаимосвязь программных модулей, процедур и функций)
- •5.2.3. Структурная схема алгоритмов (добавление, изменение, удаление, поиск и сортировка данных в главном файле; формирование отчетов, ведомостей)
- •5.3. Осуществление выбора инструментальных средств разработки программных модулей
- •6. Рабочий проект
- •6.1. Описание применения (общая характеристика программы с указанием сферы и особенностей ее применения)
- •6.2. Руководство пользователя:
- •6.2.1. Детальное описание работы с программой (функциональные возможности и технология использования компонентов)
- •6.2.2. Графический интерфейс (описание форм, состава используемых объектов, их свойств, методов и событий – на примере форм для работы с главным файлом)
- •6.3. Руководство программиста (особенности внутренней структуры программы, правила эксплуатации и обеспечения надежной и качественной работы)
- •Автозаполнение
- •Добавление
- •Изменение
- •Удаление
- •Очистка
- •Отмена поиска
- •Сортировка
- •Закрыть
- •Форма «Статистика»
- •Показать
- •7. Ввод в эксплуатацию
- •8. Список литературы
Автозаполнение
ListBox заполняется автоматически с листа «Регистрация поставок» при помощи кода:
Private Sub UserForm_Initialize()
Worksheets("Регистрация поставок").Activate
Dim i As Integer
Dim j As Integer
'Заполнение ListBox
ListBox1.Clear
i = 1
Do
i = i + 1
ListBox1.AddItem Cells(i, 1)
For j = 1 To 4
ListBox1.List(i - 2, j - 1) = Cells(i, j)
Next j
Loop While Cells(i + 1, 1) <> ""
Private Sub ListBox1_Click()
Worksheets("Регистрация поставок").Activate
ComboBox1.Text = Cells(ListBox1.ListIndex + 2, 1)
TextBox2.Text = Cells(ListBox1.ListIndex + 2, 2)
TextBox1.Text = Cells(ListBox1.ListIndex + 2, 3)
TextBox3.Text = Cells(ListBox1.ListIndex + 2, 4)
End Sub
ComboBox заполняется с листа «Регистрация поставок» при помощи следующего кода:
i = 1
Do Until Worksheets("Регистрация поставок").Cells(i, 1) = Empty
ComboBox1.AddItem
ComboBox1.List(i - 1, 0) = Worksheets("Регистрация поставок").Cells(i + 1, 1)
ComboBox1.List(i - 1, 1) = Worksheets("Регистрация поставок").Cells(i + 1, 2)
Loop
Добавление
Private Sub CommandButton2_Click()
Worksheets("Регистрация поставок").Activate
Dim i As Integer
Dim j As Integer
i = 1
Do
i = i + 1
Loop Until Cells(i, 2) = Empty
Cells(i, 1) = TextBox1.Text
Cells(i, 2) = TextBox2.Text
Cells(i, 3) = TextBox3.Text
Cells(i, 4) = ComboBox1.Text
ListBox1.Clear
i = 1
Do
i = i + 1
ListBox1.AddItem Cells(i, 1)
For j = 1 To 4
ListBox1.List(i - 2, j - 1) = Cells(i, j)
Next j
Loop While Cells(i + 1, 1) <> ""
End Sub
Изменение
Private Sub CommandButton3_Click()
Worksheets("Регистрация поставок").Activate
Dim i As Integer
Dim j As Integer
Cells(ListBox1.ListIndex + 2, 1) = ComboBox1.Text
Cells(ListBox1.ListIndex + 2, 2) = TextBox2.Text
Cells(ListBox1.ListIndex + 2, 4) = TextBox3.Text
Cells(ListBox1.ListIndex + 2, 3) = TextBox1.Text
ListBox1.Clear
i = 1
Do
i = i + 1
ListBox1.AddItem Worksheets("Регистрация поставок").Cells(i, 1)
For j = 1 To 4
ListBox1.List(i - 2, j - 1) = Cells(i, j)
Next j
Loop While Cells(i + 1, 1) <> ""
End Sub
Удаление
Private Sub CommandButton5_Click()
Worksheets("Регистрация поставок").Activate
Dim i As Integer
Dim j As Integer
i = ListBox1.ListIndex
'Каскадное удаление
j = 0
Call MsgBox("Будет выполнено удаление записей!")
Do
j = j + 1
If Worksheets("Регистрация поставок").Cells(i + 1, 3) = Worksheets("Прейскурант цен").Cells(j, 1) Then
Worksheets("Прейскурант цен").Rows(j).Delete
j = j - 1
End If
Loop While Worksheets("Регистрация поставок").Cells(j + 1, 1) <> ""
ActiveSheet.Rows(i + 1).Delete
ListBox1.Clear
i = 1
Do
i = i + 1
ListBox1.AddItem Cells(i, 1)
For j = 1 To 4
ListBox1.List(i - 2, j - 1) = Cells(i, j)
Next j
Loop While Cells(i + 1, 1) <> ""
TextBox1.Text = ""
TextBox2.Text = ""
ComboBox1.Text = ""
TextBox3.Text = ""
End Sub
Т.к. в таблице «Регистрация поставок» содержится исходная информация для таблицы «Прейскурант цен» и из неё заполняется элемент ComboBox в форме «Прейскурант цен», поэтому в коде используется каскадное удаление, т.е. автоматическое удаление информации не только из таблицы «Регистрация поставок», но и из таблицы «Прейскурант цен».