Добрый день!
Прошу помощи в таком вопросе - по выделенным в гриде строкам надо рассчитать и напечатать документ,
заполнив Вордовый шаблон.
Все получается, только по каждой строке у меня выпускается ОТДЕЛЬНЫЙ вордовый документ, а требуется,
что бы они ВСЕ выходили ОДНИМ документом.
Скрипт такой:
...
var WordRecord = null;
var WordObject = null;
var Selection = null;
WordRecord = new Object(); //создаём объект Word
for ( i = 0; i
WordRecord = OpenWordTemplate('_Demand60'); //считываю шаблон из базы
WordObject = WordRecord.word;
Selection = WordObject.Selection;
Selection.WholeStory();
WordReplaceMark(Selection, '>', Client );
Selection.MoveLeft(1, 1);
WordObject.Visible = true;
} // END_FOR ContractID
Как все документы вывести одним файлом?
Нравится
Борис, вот рабочий пример для добавления в отчет нескольких строк:
function Main() { //Создаем объект WORD и открываем шаблон var FileName = 'c:\\rep_test.doc'; var Word = new ActiveXObject('Word.Application'); Word.Documents.Open(FileName); var Selection = Word.Selection; //Находим метку, которая содержится в таблице и определяем сколько вставить строчек var RowsToInsert = 10; //В данном случае вставляем 10 строчек (это может быть кол-во записией датасета) if (Selection.Find.Execute('<<NumberMark>>')) { if (Selection.Tables.Count > 0) { //Если условие выполнилось - то Selection есть таблица. И вставляем строчки в нее Selection.InsertRowsBelow(RowsToInsert - 1); var Table = Selection.Tables(1); //Перебираем все строчки начиная со второй (1-я это заголовок) for (var i = 2; i <= Table.Rows.Count; i++) { Table.Columns(1).Cells(i).Range.Text = 'Левая колонка'; Table.Columns(2).Cells(i).Range.Text = 'Правая колонка'; } } } Word.Visible = true; }
Скорее всего Вам поможет вынос из цикла строк
WordRecord = OpenWordTemplate('_Demand60'); //считываю шаблон из базы WordObject = WordRecord.word; Selection = WordObject.Selection; Selection.WholeStory(); ... WordObject.Visible = true;
Борис, посмотрите еще раз пример, который я Вам прислал.
Если я правильно понял, то можно воспользоваться функцией
Selection.InsertRowsBelow(RowsToInsert );
А потом обращаться к ячейкам
Table.Columns(i).Cells(j)
, как в примере.
Если я не так понял, поправьте.
Борис, в таком случае нужно изменять логику работы финкции ShowWordReport в скрипте Scr_UserReportCommon таким образом, чтобы при добавлении строк во время 2, 3, 4... итераций создаваемый новый документ, а точнее его содержимое, прикреплялось к тому, что был создан во время первой итерации и дальше работа производилась с ним.