|
Создать таблицу в doc из 1с | ☑ | ||
---|---|---|---|---|
0
ozon0
26.01.15
✎
21:41
|
Создавать doc из 1с умею. Как вставить в нее таблицу, если количество строк меняется в зависимости от табличной части?
|
|||
1
spectre1978
26.01.15
✎
21:44
|
Сделайте запись макроса, вставьте таблицу с нужным количеством строк и столбцов, завершите запись макроса. Посмотрите получившийся код. Оформите соответствующий вызов OLE в 1С.
|
|||
2
nordbox
26.01.15
✎
21:44
|
ozon0, а по нормальному вопрос можно?
если нужна таблица так ее и используй только в екселе я так думаю. а текстовый редактор для текста вообще то |
|||
3
spectre1978
26.01.15
✎
21:47
|
(2) почему? Ворд позволяет работу с таблицами в теле документа, тут никаких противоречий особенных нет. Можно так, можно этак. Если документ преимущественно табличный, лучше эксель. Если преимущественно текстовый и табличка в теле текста, то лучше ворд.
|
|||
4
nordbox
26.01.15
✎
21:50
|
ну он же говорит что:
>>количество строк меняется в зависимости от табличной части Возможно и колонки меняются явно что табличные данные |
|||
5
spectre1978
26.01.15
✎
22:25
|
(4) да, но он не говорит сколько текста. Возможно что его помимо таблицы много
|
|||
6
ozon0
26.01.15
✎
22:36
|
я имел в виду такую конструкцию
Таблица = ПолучитьМакет("Пример2"); MsWord = Таблица.Получить(); //макет является ActiveDocwment с загруженым в него Word-файлом Попытка MsWord.Application.Visible = 0; Word = MsWord.Application; Док=Word.Documents(1); Док.Activate(); Если Массив.Количество()>1 Тогда //Переместиться вниз на 10 строк от начала документа Word.Selection.MoveDown(,15); //10 строка - первая строка таблицы //назад на 1 символ (окончание строки таблицы) Док.Paragraphs.Add(); Rng = Word.Selection.Range; Rng.InsertAfter("№ n/n*ФИО Сотрудника*Номер карты /счета*Сумма перечислений"); Rng.InsertParagraphAfter(); //Rng.InsertAfter("№ n/n*ФИО Сотрудника*Номер карты /счета*Сумма перечислений"); //Rng.InsertParagraphAfter(); Для каждого Сотрудник Из СсылкаНаОбъект.Зарплата Цикл Rng.InsertAfter(Строка(Сотрудник.НомерСтроки)+"*"+Строка(Сотрудник.Физлицо.Наименование)+"*"+ Строка(Сотрудник.Начислено)); Rng.InsertParagraphAfter(); КонецЦикла; Rng.ConvertToTable("*"); КонецЕсли; |
|||
7
ozon0
26.01.15
✎
22:49
|
Теперь вопрос 2: Таблица полученного doc без горизонтальных и вертикальных разделительных линий. В ворде пишу макрос - у созданной таблицы меняю стиль. Выходит строка:
word.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter; word.Selection.ParagraphFormat.Alignment = rng.wdAlignParagraphCenter; как теперь добавить в свою процедуру? |
|||
8
ozon0
26.01.15
✎
22:50
|
* просто word.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter;
|
|||
9
фобец
26.01.15
✎
22:56
|
(8) так и пиши в своей процедуре. Осталось узнать значение константы wdAlign... Для этого правой кнопке на ней и quick info
|
|||
10
ozon0
26.01.15
✎
23:07
|
http://saveimg.ru/show-image.php?id=8e15dba9aeefe3dd414315db015ecc33
может Definition? Const wdAlignParagraphCenter = 1 в 1с пишу word.Selection.ParagraphFormat.Alignment = 1 ноль движения |
|||
11
mdocs
26.01.15
✎
23:42
|
Нафига эти пляски.
Рисуешь табличку в ворде ручками, добавляешь к ней нужное количество строк програмно. |
|||
12
Куро
26.01.15
✎
23:47
|
если надо границы показать то 2 варианта есть
ActiveDocument.Tables (1) .Borders.Enable = TRUE и так Set myTable = ActiveDocument.Tables(1) With myTable.Borders .InsideLineStyle = wdLineStyleSingle .OutsideLineStyle = wdLineStyleDouble End With а вообще все на MSDN есть... |
|||
13
Куро
26.01.15
✎
23:48
|
да и Alignment тока ровняет по сторонам значение (лево, право, центр)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |