Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MS Access > Cоздание документа на основе нескольких шаблонов |
Автор: ezhikov 10.10.2008, 10:35 | ||
Приветствую уважаемые! Формирую Word-документы на основе шаблонов и полей автоматизации в них {DOCVARIABLE name \* MERGEFORMAT}. Примерный код в Access:
Пользователь выбирает в списке необходимые шаблоны и они открываются/печатаются последовательно. Возникла необходимость сформировать один документ на основе нескольких шаблонов, т.е. чтобы на выходе я получил один word-документ, в котором последовательно засунуты выбранные шаблоны(документы). Подскажите идею объединения нескольких документов в один. При этом у исходных шаблонов может быть разная ориентация. |
Автор: Akina 10.10.2008, 11:01 |
Читаем справку Ворда по термину "Главный документ". |
Автор: ezhikov 10.10.2008, 12:06 |
"Главный документ. Документ-контейнер, объединяющий в себе нескольких отдельных файлов (так называемых вложенных документов). С помощью главного документа можно создавать и обрабатывать сложные документы, состоящие из нескольких частей, например книги, разделенные на главы.) " Не совсем могу понять, как мне здесь использовать технологию "главного документа". Изначально создавать "главный документ" со ссылками на все шаблоны? Тогда придётся его постоянно изменять, т.к. шаблоны меняются (названия/количество). Потом из него выделять только те. которые выбрал пользователь в списке... Формировать программно на выходе"главный документ", но, как я понимаю, придётся сначала создать отдельные документы, а потом к ним привязать ссылки в "главном..."?... ![]() |
Автор: Akina 10.10.2008, 12:27 |
Создается шаблон главного документа, пустой. И в него программно вставляются необходимые докуметы, сформированные по отдельным шаблонам, после чего полученный документ сохраняется (SaveAs) как единый документ, где то, что осталось от каждого отдельного шаблона, оформлено как раздел. Все собсно... |
Автор: ezhikov 10.10.2008, 13:02 |
Akina, Может ещё покажите примерны код, ибо в справке Word такого я вряд ли найду. Например, как мне в "главный документ" вставить документ, созданный на базе шаблона (при том, что он(сформированный документ) не сохранен как отдельный файл). |
Автор: Akina 10.10.2008, 13:27 |
Что такое макро-рекордер - в курсе? |
Автор: ezhikov 10.10.2008, 14:12 |
Akina, Могу ли я в "главный документ", вставить вложенный документ, который ещё не существует как отдельный файл, к которому нельзя указать путь(его полное имя)? p.s. формирование "главное документа" со списком исходных шаблонов мне не совсем подходит... |
Автор: bopoha 10.10.2008, 14:19 |
ezhikov, Как можно положить на полку вещь, которая появится у вас только завтра? Правильно никак. Вы зачем себе сложности придумываете? Проблемы решать нужно! Решение 1. Формируем подчиненные документы. Результаты формирования программно копируются в главный документ. По окончанию работы подчиненные документы удаляются. В результате пользователь получает свой документ. Реализуется легко и просто. Решение 2. Формируем подчиненные документы. Создаем общий документ и в нем создаем ссылки на подчиненные - в Word такое возможно. Отображаются в главном документе все подчиненные. При этом они должны будут лежать все вместе. Не удобно! Я выбираю первое решение! |
Автор: ezhikov 10.10.2008, 14:43 |
bopoha, "Результаты формирования программно копируются в главный документ" - у меня результатом является открытый документ (некая word-переменная). Собственно в этом и вопрос. Правильно ли я понял, что для реализации этих решений сформированные документы необходимо сохранять/удалять? |
Автор: ezhikov 10.10.2008, 15:29 |
А как сохранить исходную ориентацию шаблона/документа? Шаблоны могут быть разной ориентации. (кроме как программно узнать ориентацию шаблона и принудительно изменить ей при вставке)? |
Автор: Akina 10.10.2008, 15:58 |
Если после вставки очередного фрагмента вставить разрыв раздела, начинающегося с новой страницы - получится то, что нужно - при копировании копируются в т.ч. и параметры страницы, включая ориентацию. |
Автор: ezhikov 10.10.2008, 16:07 | ||
Akina, Угу... получилось...
Всем спасибо... |
Автор: ezhikov 13.10.2008, 16:04 | ||
Ни как не могу справиться с проблемой... Если первым выбирается шаблон с закладками, то получаю ошибку 5101 "Данная закладка не существует." Если шаблон с закладками не первый из выбранных, то все нормально работает. ![]()
Вставил строчку objDocument.Activate и все заработало... ![]() |