(Продолжение, начало см. МК № 12, 5 (172173, 176))
Разработка панели инструментов шаблона
Исходя из потребностей пользователя, разобьем процесс разработки Шаблона на три этапа, из которых последний будет наиболее трудоемким и сложным:
1) Определение задач, решение которых должен автоматизировать Шаблон. Создание бланка Шаблона. Планирование внешнего вида панели(ей) инструментов, функций кнопок, полей и списков ввода-вывода.
2) Написание кода создания панели инструментов.
3) Разработка необходимых процедур для объектов разрабатываемой панели.
Определимся, что Шаблон будет находиться в папке со всеми Шаблонами MS Office, а панель будет иметь такой внешний вид (рис. 1).
В верхнем ряду командные кнопки:
Обновление данных для загрузки и обновления в раскрывающемся списке данных из базы;
Очистка очистка полей ввода-вывода данных;
Запись в базу данных нового предприятия;
Открытие программы «Блокнот» для редактирования текстовой базы данных;
Вставка вставка данных из буфера обмена в документ;
Запуск программы «Буфер обмена» для просмотра содержимого буфера обмена;
Вызов справки.
Второй и третий ряды содержат данные о предприятии.
Четвертую строку занимает раскрывающийся список
От разработки формы бланка, в который будут заноситься данные, умышленно уклоняюсь, возлагая ее на плечи читателей.
В Word’е существует возможность создания встроенных меню и кнопок вручную: «Сервис»/«Настройка»/Закладка «Команды» в окне «Категории» выбрать «Макросы», кнопку выбранного макроса перетащить на панель инструментов или в меню, затем можно изменить рисунок выделенного объекта (рис. 2).
Но в данном случае от этой затеи придется отказаться по причине того, что в Word’е не предусмотрена возможность создания вручную полей ввода и раскрывающихся списков. Панель со всеми ее объектами придется создавать программно, подбирая каждой кнопке свою иконку. Форма для генерирования иконок была мной предложена в МК № 7-9 (126128).
Для создания панели, первоначально на уровне общей области модуля (так как к объектам во время работы с панелью обращение будет осуществляться и из других процедур), объявим объектные переменные для создания раскрывающихся списков и полей ввода-вывода реквизитов. Обращаться в программе к объектам панели инструментов можно по имени объекта (если оно задавалось), по индексу (порядковому номеру в панели), или используя значение свойства Caption; правила обращения в программе уточняются разработчиком во время тестирования. Наиболее устойчивым является обращение по индексу.
О защите создаваемой панели следует рассказать подробнее (см. табл.). Чтобы разобраться в том, как использовать константы, достаточно просто немного поэкспериментировать. Раскрывающийся список является одноколоночным объектом, но многоколоночность можно сымитировать, помещая между порциями данных определенный символ. Для этих целей подойдет символ табуляции. Использование других символов нецелесообразно в связи с тем, что они могут встречаться непосредственно в загружаемых данных. Поэтому процедура обновления (загрузки данных) в раскрывающийся список будет иметь следующий вид: