![]() |
![]() |
![]() |
|
v8: MS Word: Сделать картинку за текстом ₽ |
☑ | ||
---|---|---|---|---|
0
psa247
11.02.10
✎
18:31
|
Доброго !
Вот, пытаюсь перетащить картинку ! Word = Новый COMОбъект("Word.Application"); Word.Visible = ИСТИНА; Word.Documents.Open(Путь+"\"+ИмяДок); //ThisDocument.Shapes.AddPicture FileName:="C:\Picture.jpg", Left:=250, Top:=50 //'ActiveDocument.Shapes.AddPicture FileName:="C:\Picture.jpg", Left:=250, Top:=50 //ActiveDocument.Shapes(ActiveDocument.Shapes.Count) .Select //Selection.ShapeRange.Left = 250 //Selection.ShapeRange.Top = 250 ФИОДляКартинки = СокрЛП(ПодписалДок.Наименование); Если ТипЗнч(ПодписалДок)=Тип("СправочникСсылка.Руководители") Тогда ФИОДляКартинки = СокрЛП(ПодписалДок.Сотрудник.Наименование); КонецЕсли; Пикчер = Word.Selection.InlineShapes.AddPicture(Константы.ЦентральноеХранилище.Получить()+"\Подписи\"+ОбщийМодуль4.Инициалы(ФИОДляКартинки, ИСТИНА, ИСТИНА, 8)+"JPG"); Word.ActiveDocument.Shapes.Item(Word.ActiveDocument.Shapes.count).Select; Word.ActiveDocument.Shapes.Item(Word.ActiveDocument.Shapes.count).ZOrderPosition(5); Управляет позицией рисунка ZOrder Но как этой конструкцией управлять - не знаю :( Присвоить значение равное 5 не получается, как правильно ?? |
|||
1
psa247
11.02.10
✎
20:22
|
А вабще, было б прикольно заставить 1С выводить на бланки.
|
|||
2
psa247
12.02.10
✎
14:20
|
Кто с ВБА-более-менее знаком ?
Как это правильно в 1С будет ? |
|||
3
psa247
13.02.10
✎
11:59
|
попробую еще разок
|
|||
4
Живой Ископаемый
13.02.10
✎
12:08
|
Шаблоны никак не катят?
|
|||
5
psa247
13.02.10
✎
13:11
|
(4) на основе шаблонов будет. Но, не в этом случае. Здесь, заранее, не известно, кто подписывает документ, собственно, какую картинку вставить выбирается в реальном времени :)
|
|||
6
dk
13.02.10
✎
13:17
|
а что не получается?
ошибка или нет результата? как макрос сказал делать? |
|||
7
psa247
13.02.10
✎
13:44
|
Вот пример макроса:
ThisDocument.Shapes.AddPicture FileName:="C:\Picture.jpg", Left:=250, Top:=50 АctiveDocument.Shapes.AddPicture FileName:="C:\Picture.jpg", Left:=250, Top:=50 ActiveDocument.Shapes(ActiveDocument.Shapes.Count) .Select Selection.ShapeRange.Left = 250 Selection.ShapeRange.Top = 250 Word.ActiveDocument.Shapes.Item(Word.ActiveDocument.Shapes.count).ZOrderPosition(5); Переделал для себя: Word = Новый COMОбъект("Word.Application"); Word.Visible = ИСТИНА; Word.Documents.Open(Путь+"\"+ИмяДок); ФИОДляКартинки = СокрЛП(ПодписалДок.Наименование); Если ТипЗнч(ПодписалДок)=Тип("СправочникСсылка.Руководители") Тогда ФИОДляКартинки = СокрЛП(ПодписалДок.Сотрудник.Наименование); КонецЕсли; Пикчер = Word.Selection.InlineShapes.AddPicture(Константы.ЦентральноеХранилище.Получить()+"\Подписи\"+ОбщийМодуль4.Инициалы(ФИОДляКартинки, ИСТИНА, ИСТИНА, 8)+"JPG"); Сел = Word.ActiveDocument.Shapes.Item(Word.ActiveDocument.Shapes.count).Select; Сел.ZOrderPosition = 5; Ругается на: 'ZOrderPosition' не является методом |
|||
8
psa247
13.02.10
✎
13:46
|
Есть еще и так:
With WordDoc.Shapes(1) .Top = 200 'position verticale de l'image dans le document .Left = 150 'position horizontale de l'image dans le document .ZOrder msoBringInFrontOfText 'image au premier plan devant le texte '.ZOrder msoSendBehindText 'option pour image en arriere plan derriere le texte End With Скорее всего, msoSendBehindText - константа и равна 5. Описания не нашел |
|||
9
psa247
13.02.10
✎
15:22
|
о_О
|
|||
10
dk
13.02.10
✎
15:29
|
Word.ActiveDocument.Shapes.Item(Word.ActiveDocument.Shapes.count).ZOrderPosition(5);
Сел.ZOrderPosition(5); |
|||
11
psa247
13.02.10
✎
15:52
|
(10) Если по первой строке тогда 'ZOrderPosition' не является методом
Если вместо ZOrderPosition поставить ZOrder тогда ошибки нет, но ничего не происходит |
|||
12
psa247
13.02.10
✎
15:52
|
Сел = Word.ActiveDocument.Shapes.Item(Word.ActiveDocument.Shapes.count).Select;
ругается, что нет свойства Селект :( |
|||
13
dk
13.02.10
✎
15:53
|
Word.ActiveDocument.Shapes.Item(Word.ActiveDocument.Shapes.count).Select();
|
|||
14
dk
13.02.10
✎
15:55
|
не надо путать методы Select() и свойства Count, хотя ехель обычно терпимо к этому относится
|
|||
15
Shandor777
13.02.10
✎
15:55
|
(1) Если я правильно понял, есть желание выводить данные отчета на готовый бланк. Я как-то делал вывод на форму MS Access данных справки 2НДФЛ из DBF файла "подложив" готовый бланк как объект Exel. А в нужных местах поверх расположил поля с данными.
Заодно попробовал "подложить" бланк как объект в таблицу 1С, насколько я помню, это получилось без проблем. А вот в Visuel FoxPro не получилось. Только как картинку удалось разместить, а это мне не понравилось. Пришлось использовать Access, хоть я его и не люблю. |
|||
16
psa247
13.02.10
✎
16:03
|
Если делать так:
Сел = Word.ActiveDocument.Shapes(Word.ActiveDocument.Shapes.Count).Select(); Сел.ZOrderPosition(5) Ругается: Значение не является значением объектного типа (ZOrderPosition) А если вот так: Word.ActiveDocument.Shapes(Word.ActiveDocument.Shapes.Count).ZOrderPosition(5) то вообще: Ошибка при вызове метода контекста (ZOrderPosition): Неизвестная ошибка |
|||
17
psa247
13.02.10
✎
16:03
|
в верхнем случае Сел=Неопределено, т.е. не позиционируется
|
|||
18
psa247
13.02.10
✎
16:22
|
Работает так:
Пикчер = Word.Selection.InlineShapes.AddPicture(Константы.ЦентральноеХранилище.Получить()+"\Подписи\"+ОбщийМодуль4.Инициалы(ФИОДляКартинки, ИСТИНА, ИСТИНА, 8)+"JPG"); Сел = Word.ActiveDocument.Shapes(Word.ActiveDocument.Shapes.Count).ZOrder(1); // 1 - перед текстом // 5 - за текстом. Спасибо огромное ! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |