0
deadpuma
09.10.12
✎
11:51
|
Нужно чтобы в Документе Word автоматически создавалась таблица с произвольным количеством строк. Обычные реквизиты документа заполняются, а с таблицей проблемы.
Нашел пример кода в инете, но не совсем видимо правильно сделал.
Процедура вылетает на строке Выбор = КомОбъект.Selection();
и еще подскажите в самом документе Word нужно ли для таблицы вставлять специальный Экспресс-Блок, для обычных реквизитов, например, я использую DocVariable. А как в случае таблицы?
Процедура ОтправитьНаПечатьДоговор(Кнопка)
АктивныйДокумент = ПолучитьМакет("МакетДоговорПоставки");
ДатаДоговора = Дата(Параметры.Найти("ДатаДоговора").Значение);
ФорматДаты = Формат(ДатаДоговора,"ДФ=dd.MM.yyyy");
КомОбъект = АктивныйДокумент.Получить();
КомОбъект.Application.Visible=1;
//заголовок таблицы
КомОбъект.Paragraphs.Add();
Диапазон = КомОбъект.Paragraphs(КомОбъект.Paragraphs.Count()).Range;
КомОбъект.Tables.Add(Диапазон,1,4);
КомОбъект.Tables(2).Range.Select();
Выбор = КомОбъект.Selection();
Выбор.Style = "Сетка таблицы";
Выбор.Rows.AllowBreakAcrossPages = 0;
//Зададим ширину колонок
КомОбъект.Tables(2).Columns(1).Width= КомОбъект.CentimetersToPoints(1);
КомОбъект.Tables(2).Columns(2).Width= КомОбъект.CentimetersToPoints(3);
КомОбъект.Tables(2).Columns(3).Width= КомОбъект.CentimetersToPoints(7);
КомОбъект.Tables(2).Columns(4).Width= КомОбъект.CentimetersToPoints(2);
КомОбъект.Tables(2).Columns(5).Width= КомОбъект.CentimetersToPoints(1);
КомОбъект.Tables(2).Columns(6).Width= КомОбъект.CentimetersToPoints(4);
КомОбъект.Tables(2).Columns(7).Width= КомОбъект.CentimetersToPoints(5);
КомОбъект.Tables(2).Columns(8).Width= КомОбъект.CentimetersToPoints(5);
|
|