- Главная
- Образовательные программы
- Направления
- Мат. моделирование
- Информационные технологии
- Инженерная графика
- Безопасность жизнедеятельности
- Опасные природные процессы
- Магистратура
- rintd.ru
- Установка Eclipse
Программное формирование документа в Word
Василий Констан... - чт, 09/25/2014 - 13:56
Ситуация:
Вам необходимо автоматизировать формирование договоров в виде докумен-тов Word. Типичный договор выглядит так, как представлено на рис. 10.2 (для простоты в этом задании вам нужно будет формировать только его нача-ло). Изменяемые данные, которые должны подставляться программно, выде-лены зеленым цветом.

ЗАДАНИЕ:
1. Создайте в шаблоне Normal.dot пользовательскую форму с именем FormDog и заголовком Данные договора, аналогичную представленной на рис. 10.3.

Рис. 10.3. Форма для занесения данных договора
2. Создайте макрос, по которому должна открываться эта форма, и назначьте этому макросу кнопку на панели инструментов Word.
3. Создайте и сохраните шаблон на диске с именем C:\DogovorTemplate.dot, в который будут подставляться необходимые данные, и добавьте в нуж-ные места закладки.
4. Создайте для кнопки Сформировать договор на форме программный код, при помощи которого на основе шаблона и подставляемых данных из формы формировался бы новый документ с текстом договора.
Примечание
В реальном приложении данные из формы должны были бы сохраняться в базе данных и использоваться потом многократно (например, для формирования других документов). В этом задании для простоты данные для создаваемого документа берутся напрямую из формы. Работа с базой данных в похожей си-туации будет рассмотрена в задании к гл. 12. По этой же причине все данные в этом примере (включая дату и номер договора) текстовые.
Ответ к заданию
К пункту 1 задания (создание пользовательской формы):
0. Откройте окно редактора Visual Basic для Word и щелкните правой кнопкой мыши по проекту Normal в Project Explorer, а затем выберите в контекстном меню Insert | UserForm.
1. В дизайнере форм сконструируйте форму, аналогичную представленной на рис. 10.3 (про работу с дизайнером форм рассказывалось в гл. 5). Пусть в нашем примере элементы управления на форме называются так:
• txtNumber — текстовое поле для ввода номера договора;
• txtCity — текстовое поле для ввода города;
• txtDate — текстовое поле для ввода даты;
• txtOrg — текстовое поле для ввода наименования организации;
• txtPerson — текстовое поле для ввода представителя организации;
• txtTitle — текстовое поле для ввода его должности;
• txtLaw — текстовое поле для ввода юридического основания;
• cmdDog — кнопка для формирования договора;
• cmdeancel — кнопка Отмена.
2. Настройте оформление для элементов управления по вашему вкусу. Установите значение для свойства Caption для формы как "Данные договора". Для кнопки cmdDog установите True для значения свойства Default, а для кнопки cmdCancel установите True для значения свойства Cancel. Для свойства Name самой формы введите значение FormDog.
К пункту 2 задания (создание макроса и кнопки для отображения формы):
1. В стандартном модуле NewMacros проекта Normal создайте новую процедуру с именем FormDog(). Код ее может быть таким:
Public Sub FormDogShow()
FormDog.Show
End Sub
Убедитесь, что при его запуске открывается созданная вами форма.
2. В Word в меню Сервис выберите Настройка, а затем перейдите на вкладку Команды. В списке Категории выберите Макросы, а
затем перетащите на любую панель инструментов макрос Normal.NewMacros.FormDogShow. Настройте для созданной кнопки подходящий формат отображения (см. Урок 1). После этого закройте окно Настройка и убедитесь, что при нажатии на эту кнопку открывается форма.
К пункту 3 задания (создание шаблона документа Word):
1. Создайте новый документ Word, аналогичный представленному на рис. 10.4.
2. Поместите в нужные места этого документа закладки. Места вставки закладок можно посмотреть на рис. 10.2 (текст, выделенный зеленым). Пусть закладки называются так:
- bNumber — закладка для ввода номера договора;
- bCity — закладка для ввода города;
- bDate — закладка для ввода даты;
- bOrg — закладка для ввода наименования организации;
- bPerson — закладка для ввода представителя организации;
- bTitle — закладка для ввода его должности;
- bLaw — закладка для ввода юридического основания.
3. Сохраните этот файл как шаблон Microsoft Word с именем C:\DogovorTemplate.dot.
К пункту 4 задания (создание программного кода для кнопок на форме):
1. Для события Click кнопки cmdCancel введите следующий программный код:
Private Sub cmdCancel_Click()
FormDog.Hide End Sub
2. Для события Click кнопки cmdDog можно использовать следующий программный код:
Private Sub cmdDog_Click()
Dim oDoc As Document
Set oDoc = Application.Documents.Add("C:\DogovorTemplate.dot")
oDoc.Bookmarks("bNumber").Range.Text = txtNumber.Value
oDoc.Bookmarks("bCity").Range.Text = txtCity.Value
oDoc.Bookmarks("bDate").Range.Text = txtDate.Value
oDoc.Bookmarks("bOrg").Range.Text = txtOrg.Value
oDoc.Bookmarks("bPerson").Range.Text = txtPerson.Value
oDoc.Bookmarks("bTitle").Range.Text = txtTitle.Value
oDoc.Bookmarks("bLaw").Range.Text = txtLaw.Value FormDog.Hide
oDoc.Activate
End Sub
Запускаем программу и наслаждаемся порделанной работой!
Задания для самостоятельной работы:
Написать аналогичную программу (программное формирование документа в Word) следующих документов.
Варианты:
- Служебная записка
- Заявление об утере документа
- Объяснительная записка
- Акт выполненых работ
- Договор купли-продажи
- Комерческое предложение
- Протокол атестационной комиссии
- Комунальная платежка
- Доклодная записка
- Справка с места учебы/работы
- Справка 2НДФЛ
Полезная литература:
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии