Электроэнергетика глазами молодежи Часть 2 - page 27

26
Рис. 3 – Организация модели данных
Рис. 2 – Фрагмент шаблона документа
Другой способ, полностью автоматический (рис. 1), –
написать на языке программирования VBA макрос [9],
обеспечивающий автоматическую процедуру переноса
данных из файла
Excel
с данными для заполнения в
подготовленный шаблон документа
Word
, содержащий
неизменную часть и поля для заполнения.
В файле
Excel
с созданным макросом необходимо
загрузить из подготовленного файла
Excel
данные к
заполнению. После запуска макроса в открывшейся
форме необходимо: выбрать шаблон(-ы) для заполнения,
задать
папку,
в
которую
будут
сохраняться
сформированные файлы, задать маску имени файлов
(например,
«доп_согл_<ном_доп_согл>_<наим_контр_сокр>», где
<ном_доп_согл>
номер
допсоглашения
и
<наим_контр_сокр> – сокращенное наименование
контрагента берутся из таблицы данных для заполнения),
запустить процесс создания с указанными настройками.
Макрос в цикле для каждой строки создаст на основании
шаблона новый файл, заполнит места замены данными и
сохранит созданный файл по заданной маске имени.
III.
А
ВТОМАТИЗАЦИЯ ПРОЦЕССА ПОДГОТОВКИ
ДОКУМЕНТОВ
A.
Создание шаблона документа в формате Word
Шаблон должен содержать неизменную часть и поля
для замены (рис. 2). Места замены необходимо
специально обозначить. Чтобы они случайно не совпали
с одним из слов текста, необходимо их обозначать,
используя специальные символы (#@<>{}). Например,
<Номер_согл>, <Наим_контр_полн> и т.п.
B.
Подготовка данных Excel: организация модели
данных, формирование запросов в Power Query
Для
автоматической
подготовки
документов
требуется подготовить таблицу
Excel
с данными для их
подстановки в шаблон документа. Поля заголовков
таблицы должны совпадать с наименованием полей для
замены в подготовленном шаблоне. Вместо подготовки
одной большой таблицы, предлагается организовать
реестр соглашений в файле
Excel
в более удобном виде –
в виде нормализованной базы данных, содержащей
несколько таблиц (сущностей). Для данной предметной
области предлагается выделить следующие таблицы:
Соглашения – содержится информация о
заключенных соглашениях;
Контрагенты – содержится информация о
субъектах электроэнергетики и потребителей
электрической энергии, с которыми заключены
соглашения;
Контрагенты письма – содержится контактная
информация, необходимая для формирования
писем;
РДУ – содержится информация о РДУ
операционной зоны;
Подписанты СО – содержится информация о
должностных лицах, имеющих право подписывать
соглашения со стороны ОДУ Сибири;
Исполнители – содержится информация об
исполнителях.
На рис. 3 представлена реализованная в
Excel
модель
данных, на которой представлены основные атрибуты
каждой таблицы.
Каждая таблица представлена в виде «умной
таблицы». При этом в заголовках можно использовать
понятные наименования атрибутов. Предлагаемая
модель данных удобна в использовании, за счет
использования функционала
Excel
и «умных таблицы»
(фильтрация, формулы и т.п.).
Для
формирования
объединенной
таблицы,
необходимой для заполнения шаблона используем
надстройку
Power Query
, встроенную в
Excel
. Используя
функцию
«Слияние
запросов»,
позволяющую
объединить две связанные таблицы, последовательно
объединяем все таблицы с указанием совпадающих
столбцов, по которым требуется произвести объединение
[10]. Кроме того,
Power Query
позволяет добавить новые
пользовательские столбцы с заданной формулой
(например, зная количество допсоглашений можно
рассчитать номер следующего допсоглашения). Для
приведения
заголовков
таблицы
к
принятым
наименованиям полей замены в шаблоне используем
функцию
Table.RenameColumns
. Столбцы с ненужными
данными удаляем. Окончательный результат запроса
необходимо выгрузить на отдельный лист
Excel
. Для
удобства можно подготовить три разных запроса для
соглашений, допсоглашений и писем. Для корректировки
данных необходимо скорректировать их в исходных
таблицах и обновить запросы.
1...,17,18,19,20,21,22,23,24,25,26 28,29,30,31,32,33,34,35,36,37,...208
Powered by FlippingBook