- •Л.Н. Лядова, н.В. Фролова, в.В. Ланин, е.Б. Замятина, м.А. Плаксин, б.А. Ермолаев
- •Часть 2. Основы офисного программирования
- •Оглавление
- •Глава 6. Использование Win32 api 113
- •Глава 7. Использование шаблонов и надстроек 118
- •Глава 8. Разработка приложений с помощью Excel 122
- •Глава 9. Разработка приложений с помощью Word 223
- •Глава 10. Использование Automation при интегрировании компонентов Microsoft Office 256
- •Глава 11. Организация доступа к внешним данным 279
- •Глава 12. Общие рекомендации по разработке приложений 297
- •Глава 13. Разработка справочной системы 298
- •Глава 14. Дополнительные рекомендации 301
- •Пояснительная записка
- •Уровень предварительной подготовки слушателей
- •Образовательные цели и задачи
- •Знания и навыки, получаемые в ходе изучения курса
- •Содержание занятий
- •Вопросы для самостоятельного изучения
- •Содержание лабораторных работ
- •Итоговые работы
- •Введение
- •Глава 1.Общая характеристика возможностей vba
- •Глава 2.Основные принципы разработки приложений
- •Глава 3.Основные правила разработки интерфейса
- •Глава 4.Visual Basic для приложений
- •Глава 5.Введение в язык и редактор Visual Basic
- •5.1.Окно Редактора Visual Basic
- •5.2.Основные правила записи программ на vba
- •5.2.1. Описания в программах на языке vba
- •5.2.2. Структуризация программ vba и правила записи кода процедур
- •5.2.3. Использование параметров
- •5.2.4. Типы данных vba
- •5.2.5. Описания переменных
- •5.2.6. Объекты в программах на vba и объектные переменные
- •5.2.7. Создание объектов пользователя
- •5.2.8. Описание и использование констант
- •5.2.9. Массивы в vba
- •5.2.10. Описание типов данных пользователя
- •5.2.11. Запись выражений на vba
- •5.2.12. Рекурсивные вычисления
- •5.2.13. Процедуры-подпрограммы
- •5.2.14. Процедуры-функции
- •5.2.15. Процедуры-свойства
- •5.2.16. Создание процедур
- •5.2.17. Управляющие структуры vba и события
- •5.3.Запуск программ
- •5.4.Отладка программ
- •5.5.Обработка ошибок
- •5.6.Преобразования типов
- •5.7.Функции для работы с датами и временем
- •5.8.Управление файлами
- •5.9.Функции проверки
- •5.10.Функции работы со строками
- •5.11.Взаимодействие с пользователем
- •5.12.Пользовательские формы и диалоговые окна
- •5.13.Создание пользовательских меню и панелей инструментов
- •5.14.Разработка контекстного меню
- •5.15.Открытие проектов, экспорт и импорт
- •Глава 6.Использование Win32 api
- •Глава 7.Использование шаблонов и надстроек
- •Глава 8.Разработка приложений с помощью Excel
- •8.1.Иерархия объектов Excel
- •8.2.Обзор основных объектов Excel
- •8.2.1. Объект Application
- •8.2.2. Объект Workbook
- •8.2.3. Объект WorkSheet
- •8.2.4. Объект Range
- •8.2.5. Графические объекты
- •8.2.6. Элементы управления и обработка событий
- •8.3.Представление данных и вычисления в таблицах Excel
- •8.3.1. Ссылки на ячейки рабочих листов Excel
- •8.3.2. Работа с формулами
- •8.3.3. Использование функций
- •8.3.4. Создание пользовательских функций рабочего листа
- •8.3.5. Массивы Excel
- •8.3.6. Определение связей между таблицами
- •8.3.7. Консолидация данных
- •8.3.8. Форматирование данных в таблицах
- •8.4.Анализ данных и подведение итогов
- •8.4.1. Создание сводных таблиц
- •8.4.2. Подведение промежуточных итогов
- •8.4.3. Определение частичных сумм
- •8.4.4. Создание диаграмм
- •8.4.5. Работа со структурой данных
- •8.5.Подбор параметров и поиск решения
- •8.6.Использование сценариев
- •8.7.Поиск и отбор данных в таблицах Excel
- •8.7.1. Использование автофильтра
- •8.7.2. Работа с расширенным фильтром
- •8.7.3. Поиск данных по подписям строк и столбцов
- •8.8.Упорядочение данных в таблицах
- •8.9.Защита приложений Excel
- •8.9.1. Защита от ошибок при вводе данных
- •8.9.2. Защита данных от несанкционированного доступа
- •Глава 9.Разработка приложений с помощью Word
- •9.1.Модель объектов Word
- •9.1.1. Объект Document
- •9.1.2. Другие дочерние объекты приложения Word
- •9.2.Работа с полями
- •9.3.Переменные документа
- •9.4.Использование формул в документах Word
- •9.5.Использование элементов управления в документах Word
- •9.6.Создание шаблонов документов на основе таблиц
- •9.7.Защита документов Word и кода
- •Глава 10.Использование Automation при интегрировании компонентов Microsoft Office
- •10.1.Технология ActiveX
- •10.2.Компонентная модель объектов, внедрение и связывание
- •10.3.Создание объектов Automation
- •10.4.Получение доступа к объекту
- •10.5.Пример вычислений в Access с помощью Excel
- •10.6.Управление связанными и внедренными объектами с помощью программного кода
- •Глава 11.Организация доступа к внешним данным
- •11.1.Доступ к данным из клиентских приложений
- •11.2.Интерфейс odbc
- •11.3.Использование dao для доступа к данным
- •11.3.1. Модель объектов dao
- •11.3.2. Создание рабочей области и открытие источника данных
- •11.3.3. Исследование структуры таблиц бд
- •11.3.4. Операции над данными
- •11.4.Интеграция данных и работа в сети
- •11.4.1. Доступ к данным Excel из субд Access
- •11.5.Выбор метода доступа к данным
- •Глава 12.Общие рекомендации по разработке приложений
- •Глава 13.Разработка справочной системы
- •13.1.Использование всплывающих подсказок
- •13.2.Контекстная справка «Что это такое?»
- •13.3.Подготовка файла справки
- •Глава 14.Дополнительные рекомендации Установка приложения
- •14.1.Повышение эффективности работы приложения
- •Приложение 1. Система автоматизации подготовки документов на основе пакета Microsoft Office
- •Требования к системе Office case
- •Интеллектуальность документа
- •Однократный ввод данных и их совместное использование
- •Дружественный интерфейс – «ориентация на человека»
- •Мобильность
- •Независимость от версии Microsoft Office
- •Поддержка языка разметки документов xml
- •Общий сценарий использования
- •Структура Office case
- •Структура скрытого раздела документа
- •В. Таблица ограничений
- •Подсистемы программного проекта документа Менеджер закладок
- •Менеджер классификаторов
- •Подсистема управления интерфейсом пользователя
- •Подсистема контроля данных
- •Подсистема информационного обмена
- •Дизайнер системы документов
- •Редактор классификаторов
- •Редактор правил
- •Редактор закладок
- •Редактор блоков данных
- •Пример применения Office case Постановка задачи
- •Реализация Документы «Подсистемы автоматизации подготовки отчетов»
- •Требования к квалификации пользователей
- •Установка приложения и подготовка к работе
- •Интерфейс первичных документов
- •Интерфейс сводных документов
- •Приложение 2. Автоматизированное рабочее место «Оператор автозаправочной станции»
- •Разработка структуры рабочей книги
- •Настройка пользовательского интерфейса
- •Разработка экранных форм
- •Приложение 3. Автоматизация заполнения бланка с помощью программы текстового процессора Word Постановка задачи
- •Разработка документа
- •Разработка экранной формы
- •Список литературы
Интерфейс первичных документов
Для запуска приложения, позволяющего создать и отредактировать разделы документа необходимо открыть файл (документ Word). После открытия документа (запуска приложения) на экране появляется форма, позволяющая выбрать раздел отчета для выполнения над ним операций редактирования, подготовки к отправке, печати.
Рис. ???. Главный документ формы, позволяющий получить доступ к разделам
Для начала работы следует выбрать нужный раздел отчета, щелкнув по его названию мышью (соответствующая строка окажется выделенной), и затем щелчком мыши по командной кнопке выполнить нужную команду.
Кнопка «Редактировать» открывает диалоговое окно, в котором можно просмотреть включенные в выбранный раздел отчета данные, изменить их, вывести раздел на печать. Если выбранный раздел отчета еще не существует, щелчок по кнопке «Редактировать» создает документ Word в соответствии с шаблоном этого раздела и готовит все вспомогательные данные для его формирования. Если раздел отчета был создан ранее, раскрывается диалоговое окно, в котором отображаются уже внесенные в него данные. Разделы отчета формируются в соответствии с описанным порядком. Если просмотр информации и ее редактирование возможны, запускается приложение, предназначенное для подготовки выбранного раздела отчета. Его запуск может потребовать времени, если в отчет уже включены большие массивы информации. Ход загрузки данных отображается в окне.
Рис. ???. Стартовое окно документа
Далее открывается диалоговое окно, в котором отображаются внесенные в отчет данные, содержимое отчета можно менять, используя элементы управления, расположенные в окне.
Кнопка «Подготовить отчет для отправки» готовит все данные, используемые для формирования отчета и необходимые для генерации сводных отчетов.
Кнопка «Закрыть» завершает работу с приложением.
В приложении реализован стандартный интерфейс Windows. Для выбора действий, ввода и редактирования первичных данных, сохранения результатов работы используются стандартные элементы управления Windows: кнопки, флажки и переключатели, поля ввода и поля ввода со списками.
Информация в экранной форме размещается на вкладках, соответствующих подразделам разделов отчетов. Размещение элементов управления и их вид при редактировании максимально приближены к виду печатной формы документа.
При вводе первичных данных контролируется правильность ввода (на уровне контроля типов вводимых данных (даты, числа) и допустимых диапазонов значений).
При разработке приложения реализован принцип «не набирай, а выбирай»: все значения данных, которые определены нормативными документами и повторяются в различных разделах отчета или в отчетах различных организаций, используются для сопоставления данных и их анализа (списки территорий Пермской области, форм собственности, организационно-правовых форм, категорий детей, находящихся в трудной жизненной ситуации, форм отдыха и пр.), определены в приложении и выбираются пользователем при вводе данных из раскрывающихся списков. В тех случаях, когда эти списки могут расширяться (например, список учреждений оздоровления), пользователю предоставляется возможность ввода новых значений.
Если вся информация выбранного подраздела не может быть одновременно отображена в окне, на вкладке появляются вертикальная и/или горизонтальная полосы прокрутки.
Между элементами управления в окне можно перемещаться либо с помощью мыши, устанавливая фокус (курсор) щелчком мыши по нужному элементу, либо нажатием клавиши Tab на клавиатуре (фокус устанавливается на следующий элемент).
Данные либо вводятся с клавиатуры, либо выбираются из предлагаемых раскрывающихся списков. При вводе значений с клавиатуры контролируется их корректность. Например, контролируется необходимость ввода обязательных значений: при попытке пропустить ввод обязательного для ввода реквизита документа или показателя и при перемещении фокуса с этого элемента при оставшемся незаполненным поле на экран выводится соответствующее сообщение. Пользователь может вернуться к вводу пропущенного значения (щелчком по кнопке «ОК») или отказаться от его ввода («Отмена»).
Рис. ???. Сообщение о некорректно введенном значении
Контроль позволяет предотвратить ошибки при обработке и анализе данных при вычислении результатных показателей в первичных отчетах и формировании сводных отчетов.
Если при вводе данных допущенные ошибки не были исправлены (например, вследствие того, что необходимые данные оказались неизвестными на момент создания раздела отчета), то всегда можно вернуться к исправлению ошибок, щелкнув по кнопке «Исправить…». Данная команда переводит фокус на первый элемент, при вводе которого была допущена ошибка, и отображает сообщение об этой ошибке, давая пользователю возможность исправить ее. После исправления ошибки можно перейти к следующей и т.д.
Введенные в диалоговых окнах данные можно сохранить в отчете (кнопка «Сохранить»). Сохраненные данные будут доступны для загрузки при последующих обращениях к выбранному разделу отчета. При сохранении введенных данных на экране отображается процесс сохранения:
Рис. ???. Окно, отображающее процесс сохранения данных
В ходе подготовки к сохранению проверяется правильность введенных данных. Если обнаруживаются неисправленные ошибки, на экран выводится сообщение.
Кроме стандартных элементов Windows в программе используются специальные элементы, позволяющие динамически изменять число строк в таблицах (это необходимо, при включении в таблицы сведений о новых объектах (учредителях, балансодержателях, корпусах и помещениях, воспитанниках и т.п.), информация о которых должна размещаться в отдельных строках таблиц отчета, а их число заранее для каждого конкретного учреждения определить невозможно).
Общий вид этих элементов показан на вкладке диалогового окна, представляющей сведения об учредителях и балансодержателях учреждения оздоровления.
Для добавления новой строки в таблицу отчета необходимо щелкнуть мышью по специальному элементу управления, расположенному слева от первой строки. Каждый щелчок по этому элементу добавляет в таблицу отчета по одной строке. Ввести информацию в добавленную пустую строку можно с помощью элементов управления, размещенных в соответствующей строке экранной формы.
Для удалений «лишних» строк из таблицы используются элементы, размещенные слева от каждой вставляемой в таблицу строки. Щелчок по этому элементу полностью удаляет соответствующую строку со всем ее содержимым.
Для очистки первой строки следует выбрать пустое значение в первом элементе строки.
Рис. ???. Дополнительные элементы управления
Некоторые элементы отчета связаны друг с другом. Например, код ОКОГУ и наименование министерства (ведомства) или органа управления при определении ведомственной подчиненности учреждения (рис. 19).
Рис. ???. Связанные элементы управления
Для снижения трудоемкости выбор элемента из списка приводит к тому, что автоматически формируется значение связанного поля в отчете.
Операции над формируемым разделом отчета в целом выполняются с помощью командных кнопок, расположенных в нижней части диалогового окна редактирования раздела («Сохранить», «Исправить…», «Печатать», «Выход»).
Сформированный отчет можно распечатать на бланке, воспользовавшись кнопкой «Печать». Щелчок по этой кнопке раскрывает диалоговое окно выбора варианта печати. Выбрав нужный вариант, следует щелкнуть по кнопке «ОК». На экране появится стандартное окно печати документа Word.
Щелчок по кнопке «Выход» завершает работу с данным разделом отчета и возвращает пользователя в основной документ с перечнем разделов отчета.
