Программы "Простой софт" www.prostoysoft.ru

ВНИМАНИЕ! РЕКЛАМНЫЕ СООБЩЕНИЯ И ГИПЕРССЫЛКИ В ФОРУМЕ ЗАПРЕЩЕНЫ (посты удаляются автоматически)
Текущее время: 27.11.2024 13:37

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: 30.05.2016 22:15 
Не в сети

Зарегистрирован: 30.05.2016 22:06
Сообщения: 5
Имеется основная таблица и подчиненная, в которой находятся имена внешних файлов, например, файлы счетов в формате WORD. Можно ли создать шаблон, в котором внешние файлы будут объединяться в один итоговый файл?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30.05.2016 23:44 
Не в сети

Зарегистрирован: 06.10.2014 18:30
Сообщения: 279
Откуда: Орел
Я придумал один способ.
1. Создать шаблон в который при формировании документа будут помещаться имена файлов из подчиненной таблицы.
2. В нем (в шаблоне) сделать макрос который будет автоматически запускаться при открытии файла документа.
3. Этот макрос будет искать по тексту имена файлов (их можно обрамить в какое нибудь кодовое слово например: фвывро*о34ш*?8756) , и вставлять в нужное место их содержимое.
4. Последней функцией макроса д.б. удаление самого себя (макроса) из получившегося документа. (чтоб при последующем открытии документа не работал опять)

Коряво и сложно. Но работать должно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 31.05.2016 13:38 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
В теории то гладко все, а на практике...
Самому стало интересно заморочился…
Не знаю как с шаблоном, но вот готовый сценарий VbScript для пакетной склейки документов MS Word.
Там, где получаем список файлов в каталоге, можно выполнить запрос к подчиненной таблице в базе для загрузки оттуда путей к файлам.
Готовый документ сохраняется предпоследней командой objDoc.SaveAs. Проверено -- работает.
Код:
Dim i, FileList, objSelection, objDoc, objWord, objWMIService
Const strComputer = "."
Const wdStory = 6

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objWord = CreateObject("Word.Application")

objWord.Visible = False

Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection

' получаем список всех doc-файлов в каталоге "C:\Windows\Temp\Каталог с документами"
Set FileList = objWMIService.ExecQuery ("ASSOCIATORS OF {Win32_Directory.Name='C:\Windows\Temp\Каталог с документами'} Where ResultClass = CIM_DataFile")

' в цикле вставляем каждый найденный файл в документ с нового раздела
i = 0
For Each objFile In FileList
    objSelection.InsertFile(objFile.Name)

    i = i + 1
    If i < FileList.Count Then
      objSelection.EndKey wdStory
      objSelection.InsertBreak
    End If
Next

objDoc.SaveAs("C:\Windows\Temp\test.doc")
objWord.Quit

Set FileList = nothing
Set objSelection = nothing
Set objDoc = nothing
Set objWord = nothing
Set objWMIService = nothing

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01.06.2016 15:42 
Не в сети

Зарегистрирован: 30.05.2016 22:06
Сообщения: 5
OMEN, спасибо, скрипт работает и очень быстро, причем собирать можно не только файлы WORD но и PDF (WORD 2013)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01.06.2016 16:39 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
В версиях выше 2013 да, можно и PDF, т.к. имеется встроенная поддержка этого формата

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB