- •Выполнение экономических расчетов в среде ms excel
- •Практическая работа 1. Расчет сдельной заработной платы
- •Информационная технология создания листа Тарифы
- •Информационная технология создания листа Картотека
- •Информационная технология создания листа Работы
- •Информационная технология создания лицевой стороны наряда
- •Информационная технология создания оборотной стороны наряда
- •Оформление сдельных нарядов
- •Итоги по сдельной зарплате
- •Удержания из заработной платы
- •Нормативно-справочная информация
- •Информационная технология заполнения листа Товары
- •Информационная технология заполнения листа Организации
- •База данных движения товаров
- •Оборотная ведомость движения товаров
- •Информационная технология создания листа Итоги
- •Ведомость расчетов с организациями
- •Шаблон документа «накладная»
- •Информационная технология создания шапки документа
- •Информационная технология формирования табличной части документа:
- •Ввод данных о движении товаров
- •Анализ движения товаров
Ввод данных о движении товаров
Данные накладных по приходу и расходу товаров переносятся в базу данных Движение с помощью командной кнопки, размещенной на листе Документ. Основные этапы работ:
Подготовка программного модуля на языке Visual Basic
Отладка программного модуля
Запуск программного модуля.
Создание программного модуля
Выполнить команду Разработчик, Visual Basic
Выполнить команду Insert, Module.
Текст программного модуля:
' Обязательное объявление всех переменных, используемых в модуле
Option Explicit
' Пользовательский тип данных для добавления данных документа в базу данных
‘ Объявление пользовательского типа данных – shet
' Объявление переменных различных типов: String – текст,
‘Integer - целое, Variant - произвольное, Date – дата, Long - число
Type shet
Товар As String
Наименование As String
Едизм As String
Цена As Long
Количество As Long
End Type
Dim sh() As shet
Dim nr As Integer
Dim nc As Integer
Dim i As Integer
Dim str1 As Variant
Dim str As Date
Dim str2 As Variant
4. Выполнить команду меню Insert, Procedure, указать имя процедуры Накладная_в_БД
5. Текст программного модуля:
' начало процедуры переноса данных документа в базу данных
Sub Накладная_в_БД()
' выбор блока Накладная, находящегося на листе Документ
Application.Goto Reference:="Накладная"
'определение количества строк в блоке Накладная
nr = Selection.Rows.Count
' настройка размерности динамического массива
ReDim sh(nr)
' установка на начало области блока Накладная
ActiveCell.Offset(1, 0).Range("A1").Select
' цикл формирования элементов динамического массива
‘ на основании блока Накладная
For i = 1 To nr
sh(i).Товар = Range("Накладная").Cells(i, 1).Value
sh(i).Наименование = Range("Накладная").Cells(i, 2).Value
sh(i).Едизм = Range("Накладная").Cells(i, 3).Value
sh(i).Цена = Range("Накладная").Cells(i, 4).Value
sh(i).Количество = Range("Накладная").Cells(i, 5).Value
Next i
i = 1
' присвоение переменной str2 номера накладной
Range("C1").Select
str2 = ActiveCell.Value
' присвоение переменной str даты выписки накладной
Range("F1").Select
str = ActiveCell.Value
' присвоение переменной str1 названия организации
Range("C3").Select
str1 = ActiveCell.Value
' выбор блока База_данных
Application.Goto Reference:="База_данных"
' установка на ячейку - А2
ActiveCell.Offset(1, 0).Range("A1").Select
' вставка новой записи в базу данных
Selection.EntireRow.Insert
' организация цикла добавления новой строки в блок База_данных
‘заполнение ячеек строки данными динамического массива
‘счетчик цикла равен числу строк
‘табличной части документа Накладная
For i = 1 To nr
Cells(i + 1, 1).Value = str
Cells(i + 1, 2).Value = sh(i).Товар
Cells(i + 1, 3).Value = sh(i).Наименование
Cells(i + 1, 4).Value = sh(i).Едизм
Cells(i + 1, 5).Value = sh(i).Цена
Cells(i + 1, 7).Value = str2
' проверка вида документа для заполнения ячеек и вычисление
‘стоимости поступивших и стоимости отгруженных товаров
If Range("Вид_движения").Value = 1 Then _
Cells(i + 1, 8).Value = sh(i).Количество
If Range("Вид_движения").Value = 2 Then _
Cells(i + 1, 9).Value = sh(i).Количество
'формулы вычисления стоимости поставки/отгрузки товаров
Cells(i + 1, 10).FormulaR1C1 = "=RC[-2]*RC[-5]"
Cells(i + 1, 11).FormulaR1C1 = "=RC[-2]*RC[-6]"
‘ перемещение курсора на начало строки
Selection.End(xlToLeft).Select
ActiveCell.Offset(1, 0).Range("A1").Select
‘ вставка пустой строки
Selection.EntireRow.Insert
‘ повторение цикла
Next i
' удаление лишней пустой строки в блоке Движение
Selection.EntireRow.Delete
' конец прцедуры
End Sub
Отладка программного модуля
Заполнить лист Документ первичными данными.
Перейти на лист программного модуля и выполнить запуск макроса клавишей F5.
Перейти на лист Движение и проверить правильность формирования записей списка.
Перейти на лист Итоги и проверить изменение остатков товаров.
Перейти на лист Расчеты и проверить изменение итоговых показателей.
6. Если обработка выполняется корректно, перейти на лист Движение, удалить введенные строки, оставив первую вспомогательную строку блока База_данных, проверить его границы (блок База_данных должен содержать строку за головков столбцов и хотя бы одну строку).
Запуск программы
Для запуска программного модуля использовать использование командной кнопки, которая размещается в форме документа Накладная:
Снять защиту с листа Документ, разместить кнопку запуска модуля Накладная_в_БД:
Выполнить команду Разработчик, Элементы управления, Вставить.
Выбрать кнопку и назначить ей макрос – Накладная_в_БД.
Изменить название кнопки – Запись документа.
2. Защитить лист Документ.
3. Заполнить документ и нажать кнопку для переноса данных в базу данных Движение.
4. Перейти в базу данных, проверить наличие новых данных и сохранность определения блока База_данных.
