При вызове функции необходимо формировать массив с указателями на объект, в частности
1.
new ActiveXObject("Word.Application")
. Размер массива заранее не известен, может и один и два и три элемента. Каким образом это можно реализовать?
Пока сделано так с явным указанием элемента массива.
Открытие word-документа:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
//создаём новый объект Word.Application
var WordDoc = new ActiveXObject("Word.Application");
//присваиваем созданный объект глобальной переменной для дальнейшего использования в других функциях
WordDocGlobal = [WordDoc];
WordDoc.Application.Visible = true;
//alert(document.getElementById("P64_FILENAME_HIDDEN").value);
//обновление report'а
$a_report((document.getElementById('pReportDogovorFile').value).substr(1), '1', '5', '5');
//непосредственно открытие word-файла
WordDoc.Documents.Open("d:\\Заявки\\" + document.getElementById(eFileName).value);
WordDoc.WindowState = 2; // check if window is minimized
WordDoc.WindowState = 1; // check if window is maximized
console.log (WordDoc.Application.Visible);
//запуск макроса в документе
WordDoc.Application.Run("Register_Event_Handler");
Закрытие документа:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
CloseSaveWordFileNew: function (eFileName) {
//проверяем сохранён ли файл, если нет, то сохраняем новую версию файла
//при чём исходный файл остаётся нетронутым, он просто закрывается
//alert(WordDocGlobal.Application.DocumentBeforeClose);
//alert (document.getElementById(eFileName).value);
alert (WordDocGlobal[0].ActiveDocument.Name);
if (WordDocGlobal[0].ActiveDocument.Saved == false) {
WordDocGlobal[0].ActiveDocument.SaveAs("d:\\Заявки\\" + eFileName);
// узнаем новый размер файла для записи в таблицу
var get = new htmldb_Get(null, html_GetElement('pFlowId').value, 'APPLICATION_PROCESS=SizeFile', 0);
get.addParam('x06', "d:\\Заявки\\");
get.addParam('x07', eFileName);
var gReturn = get.get();
//alert(gReturn);
//var get = new apex.ajax.ondemand();
//get = null;
//обновление report'а
$a_report((document.getElementById('pReportDogovorFile').value).substr(1), '1', '5', '5');
WordDocGlobal[0].Quit();
} else {
WordDocGlobal[0].Quit();
var get = new htmldb_Get(null, html_GetElement('pFlowId').value, 'APPLICATION_PROCESS=p64DelFile', 0);
get.addParam('x05', eFileName);
var gReturn = get.get();
//обновление report'а
$a_report((document.getElementById('pReportDogovorFile').value).substr(1), '1', '5', '5');
}
}