Необходимо создать новый документ 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 |