Тема: Использование интерфейса при построении отчетов
День добрый.
Работаем с TDMS 2.0.199 и интерфейсом для MS Word 2003 версии 2.1
Возникла необходимость сформировать и вывести на печать файл.
Принцип действия такой: Пользователь выбирает объект, по которому будет строиться файл-отчет, и в контекстном меню данного объекта выбирает команду "Распечатать отчёт".
Эта команда копирует данные из указанного объекта в другой объект-отчёт и запукает скрипт в этом объекте.
В объекте-отчёте имеется файл типа MS Word в который вставлены поля этого же объекта через вышеуказанный интерфейс.
Так же в файле содержатся дополнительные макросы по форматированию документа и установке параметров печати.
Необходимо открыть Word, запустить макросы, отправить на печать файл, закрыть файл.
Вот тут и возникает проблема. Это скрипт, который запускается в объекте отчёт:
Set vWord = CreateObject("Word.Application") vWord.Visible = True vFullFileName = ThisObject.WorkFolder + "\" + ThisObject.Files(0).FileName ThisObject.Files(0).CheckOut( vFullFileName) vWord.Documents.Open vFullFileName, , True vPrinter = vWord.Application.Run("SelectPrinter") vWord.Application.Run "SetAttributes" vOldPrinter = vWord.ActivePrinter vWord.Application.Run "SetPageParam", vPrinter vWord.PrintOut False vWord.ActivePrinter = vOldPrinter vWord.Quit False
Где SetAttributes, SetPageParam, SelectPrinter - макросы.
Всё отрабатывает за исключением того что, поля документа не обновляются. Если в указанном коде закоментировать закрытие Ворда и в открывшемся окне Ворда в главном меню выбрать TDMS -> Обновтить данные из TDMS, возникает ошибка Object required.
При выборе в меню TDMS -> Сохранить в TDMS - ошибка Object variable or With block variable not set.
Я так понимаю Word не подхватил какому объекту принадлежит файл? Какое решение проблемы предложите?