Копировать ссылку на страницу Перейти в предыдущий раздел Перейти в следующий раздел

Необходимо создать новый документ Microsoft Word и ввести две строки текста, одну из которых нужно отформатировать стилем «Заголовок 2; Раздел», а вторую выделить серым цветом. Созданный документ должен отобразиться пользователю.

Для реализации данной задачи необходимо вызывать сценарий, возвращающий относительный путь /users/....doc. Процессы Microsoft Word должны завершиться после завершения сценария.

JS

 

// Сформировать необходимые пути.
 IsWebClient = IsWebRuntimeContext()
if IsWebClient
  // Получить путь до папки users.
   WorkDir = GetConstant('DIRWebAccessUsersPath')
else
  // Получить путь до папки temp.
   WorkDir = GetTempFolder()
 endif
 NewDirName = NewID()
 NewDirAbsolutePath = Format("%s%s"; ArrayOf(
   WorkDir;
   NewDirName))
 AbsolutePath = Format("%s\%s"; ArrayOf(
   NewDirName;
  'DocFromScript.docx'))
 Result = Format("%s%s"; ArrayOf(
   WorkDir;
   AbsolutePath))
 CreateFile(NewDirAbsolutePath; 'D')

// Создать объект приложения Microsoft Word.
 WordApp = CreateObject("Word.Application")

// Создать новый документ.
 NewDoc = WordApp.Documents.Add()

// Добавить в него текстовую строку.
 Selection = WordApp.Selection
 Selection.TypeText("Новый документ для редактирования")

// Отформатировать строку стилем "Заголовок 2,Раздел".
 Selection.Paragraphs(1).Style = NewDoc.Styles("Заголовок 2;Раздел")

// Добавить новую строку.
 Selection.TypeParagraph
 Selection.TypeText("Документ создан в тексте вычислений на языке ISBL")

// Выделить введенный текст серым цветом.

// Значение 13421772 используется для серого цвета 20%.
 wdColorGray20 = 13421772
 Selection.ParagraphFormat.Shading.BackgroundPatternColor =  wdColorGray20

 
if IsWebClient
  // Сохранить документ локально на диске.
   NewDoc.SaveAs(Result)
   WordApp.Quit()
  // Создать документ из файла.
   Doc = EDocuments.CreateNewFromFile("ПЭА";"Д000055";"WORD";Result)
   Doc.Save()
  // Вернуть в результате сценария ИД созданного документа.
   Result = Doc.ID
else
  // Отобразить созданный документ пользователю.
   WordApp.Visible = True
 Endif

Для открытия документа необходимо выполнить следующее:

 

WA.FC.scripts(scriptname).execute().done(function(res) {
if (res) {
// Открыть документ через Агента веб-доступа. Передать ИД документа,

// номер версии или null (откроется последняя действующая версия),

// признак установки блокировки на объекте.
  OpenEDocByAgent(res,null,true);
}
});

См. также

 

© Компания DIRECTUM, 2018 Сообщество пользователей DIRECTUM
.navbar > a:hover { background: #FFD73B; }