четверг, 28 мая 2015 г.

Закрепление материала 1

Закрепим пройденный материал созданием комплексного макроса, но сперва введем и напомним несколько операторов:
Вставка листа код:
oSheet = ThisComponent.createInstance ("com.sun.star.sheet.Spreadsheet")
ThisComponent.Sheets.insertByName ("Имя", oSheet)
Удаление листа код:
oSheet = ThisComponent.createInstance ("com.sun.star.sheet.Spreadsheet")
ThisComponent.Sheets.removeByName ("Имя", oSheet)

Соединение отдельных модулей в общую программу производится путем добавления имени под программы в код первой программы без слова Sub -  в конец, после основного кода.
Например, у нас есть макросы:

Sub Programm
......

End Sub

Sub Filt
......
End Sub

Sub Svod
......
End Sub

Нам нужно. чтобы поочередно выполнился код сначала Programm, затем Filt, затем Svod. Мы программируем эти блоки отдельно в одной вкладке редактора, а затем в Programm в конец модуля дописывает какие подпрограммы он должен вызвать. Выглядить это будет так:


Sub Programm
.......
Filt
Svod
End Sub

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

Задание: В файле Реестр документов по МХ отфильтровать данные по полю "Название места хранения (откуда) в операции" по критерию Производство на вставленный лист "Производство", затем фильтровать данные по полю "Название типа операции" по критерию "Ингредиенты производства ГМ", с полученного листа запустить сводную - Поле строки "Дата" - Поле данных - "Сумма". Удалить из книги все листы. кроме листа со сводной.

Для вызова редактора макросов - открытом файле Calc нажмите ALT+F11.Найдите в ней библиотеку Standart и создайте в ней новый модуль. В открывшемся окне удалите все строчки и начните разработку. Рекомендуется промежуточный результат копировать с открытый блокнот, чтобы в случае сбоя не потерять время формируя код снова.
Когда программа будет сделана, закрываем окно разработки и в файле снова нажимаем ALT+F11. Ищем нужную библиотеку и модуль. Выделяем эту строчку курсором и жмем "Выполнить". Проверяем работу макроса.

Комментариев нет:

Отправить комментарий