Вставка изображения из закладки "Файлы" в отчет Word

Если при создании отчета Word перед Вами стоит задача вставить в этот отчет картинку (изображение), хранящееся на закладке "Файлы" менеджера деталей записи, могу Вам предложить один из вариантов решения.

1. Прежде всего хочу обратить Ваше внимание на то, что рисунок из закладки "Файлы" менеджера деталей не получится поместить куда-либо без предварительной выгрузки его на диск. Поэтому для этого сперва необходимо использовать стандартную функцию LoadFileFromDatabase (ID, FileName, IsTemporary, WithNativeFileName),которая описана в скрипте scr_FileUtils.
2. Далее в момент создания отчета необходимо вызывать объект Word.
В свою очередь объект Word содержит Selection, который позволяет выполнять многие операции в том числе вставку картинки. Пример его использования для вставки картинки следующий:

Selection.InlineShapes.AddPicture ('имя файла картинки с указанием пути', false, true).

'Имя файла картинки с указанием пути' Вы получите в результате отработки LoadFileFromDatabase.
В результате изображение поместится в начало отчета Word.

Для того, чтобы изображение помещалось не в начало документа Word, а в любое другое место, можем посоветовать следующее:
1. Вставить с текст шаблона MS Word метку, например >.
2. Затем в скрипте реализовать примерно следующее:

if (Selection.Find('>')){
//вставка в то самое место, где найдена метка
}

Желаю удачи!

С уважением,
Мельникова Екатерина

Нравится

Поделиться

6 комментариев

Большое спасибо!

Тот же механизм надо использовать, если надо вставить в отчет Word поле "Описание" (которое Blob)?

В случае, если надо вставить в отчет Word поле "Описание", тогда можно для выгрузки воспользоваться функцией:

function LoadFileFromDataset(FileName, Dataset, DataFieldName) {                 
            var BlobField = Dataset.DataFields.ItemsByName(DataFieldName);
            BlobField.SaveToFile(FileName);
            return FileName;
}

А

Selection.InlineShapes.AddPicture ('имя файла картинки с указанием пути', false, true)

должно работать в принципе без изменений.

Желаю удачи!

Добавление в код строки с Selection.Find('<>') вызывает ошибку выполнения Microsoft JScript: "Объект не поддерживает это свойство или метод". В чем может быть дело?

"Еременко Надежда Валерьевна" написал:

Добавление в код строки с Selection.Find('<>') вызывает ошибку выполнения Microsoft JScript: "Объект не поддерживает это свойство или метод". В чем может быть дело?


Добрый день!
Надежда, какую версию Terrasoft Вы используете?

версия XRM 3.3.
Решить проблему удалось с помощью следующего кода:

Selection.Find.Text = "<>";
 
if (Selection.Find.Execute())
{
       //вставка в то самое место, где найдена метка
}
Показать все комментарии