|
Нужна помощь с закладками в таблицах OO writer | ☑ | ||
---|---|---|---|---|
0
Карась
30.07.12
✎
11:37
|
Добрый день!
У меня стоит задача заполнения документа в open office из формы документа 1с. Я создала кнопку "Печать", после чего начала описывать процедуру. ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager"); Desktop =ServiceManager.createInstance("com.sun.star.frame.Desktop"); НастройкиОткрытия = Новый COMSafeArray("VT_VARIANT", 1); PropertyValue=ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); PropertyValue.Name = "Hidden"; PropertyValue.Value = Истина; НастройкиОткрытия.SetValue(0, PropertyValue); FilePath="C:/dvstmp/ договор №48.odt"; URL = ConvertToURL(FilePath); Document=Desktop.LoadComponentFromURL(URL,"_blank",0,НастройкиОткрытия); Закладки=Document.getBookmarks(); Закладки2=Document.getBookmarks(); Закладки3=Document.getBookmarks(); Закладки4=Document.getBookmarks(); Закладки5=Document.getBookmarks(); Закладки6=Document.getBookmarks(); Текст=Document.getText(); Контроллер=Document.CurrentController;Курсор=Контроллер.getViewCursor(); Курсор2=Контроллер.getViewCursor(); Курсор3=Контроллер.getViewCursor(); Курсор4=Контроллер.getViewCursor(); Курсор5=Контроллер.getViewCursor(); Курсор6=Контроллер.getViewCursor(); Попытка Закладка=Закладки.getByName("Tip"); Закладка2=Закладки2.getByName("Number"); Закладка3=Закладки.getByName("Partner"); Закладка4=Закладки.getByName("Partner1"); Закладка5=Закладки.getByName("Partner2"); Закладка6=Закладки.getByName("Partner3"); Таблица = Document.createInstance("com.sun.star.text.TextTable"); Document.Text.insertTextContent(Курсор5, Таблица, True); Document.Text.insertTextContent(Курсор6, Таблица, True); Исключение Сообщить("Закладка не найдена """+"Закладка"+"""!!!"); Возврат; КонецПопытки; Якорь=Закладка.getAnchor(); Якорь2=Закладка2.getAnchor(); Якорь3=Закладка3.getAnchor(); Якорь4=Закладка4.getAnchor(); Якорь5=Закладка5.getAnchor(); Якорь6=Закладка6.getAnchor(); Document.getCurrentController().getFrame().getContainerWindow().setVisible(Истина); Закладки=Объект.ХозяйственнаяОперация; Закладки2=Объект.Номер; Закладки3=Объект.Партнер; Закладки4=Объект.Контрагент; Закладки5=Объект.Контрагент; Закладки6=Объект.Контрагент; Курсор.gotoRange(Якорь, 0); Текст.insertString(Курсор, ""+Закладки+"", 0 ); / Курсор2.gotoRange(Якорь2, 0); Текст.insertString(Курсор2, ""+Закладки2+"", 1 ); Курсор3.gotoRange(Якорь3, 0); Текст.insertString(Курсор3, ""+Закладки3+"", 2 ); Курсор4.gotoRange(Якорь4, 0); Текст.insertString(Курсор4, ""+Закладки4+"", 3 ); Курсор5.gotoRange(Якорь5, 0); Текст.insertTextContent(Курсор5, ""+Закладки5+"", 4 ); Курсор6.gotoRange(Якорь6, 0); Текст.insertString(Курсор6, ""+Закладки6+"", 5 ); У меня получилось заполнить закладки из 1с, но не выходит заполнить закладки, которые находятся в таблице документа, я пока не особо разобралась, как это сделать,к ним получается отдельно надо доступ просить, если не трудно, помогите пожалуйста. |
|||
1
Карась
30.07.12
✎
11:38
|
Собственно закладка в таблице у меня находится на месте закладки 5
|
|||
2
Карась
30.07.12
✎
11:53
|
Как я понимаю должно быть что-то наподобие
http://www.1c-galaxy.ru/forum5/topic931834/ Но я пока не могу адаптировать под свой случай |
|||
3
Карась
30.07.12
✎
12:20
|
А так при запуске программы выдает ошибку о том, что он не нашел метод в этой строке, собственно эта закладка у меня и находится в таблице
Курсор5.gotoRange(Якорь5, 0); Текст.insertTextContent(Курсор5, ""+Закладки5+"", 4 ); |
|||
4
Карась
30.07.12
✎
12:40
|
Я проверила в режиме отладчика, он в принципе текст ячейки выделяет, скорее всего дело именно в методе записи
|
|||
5
Карась
30.07.12
✎
13:44
|
Я пока не понимаю какой метод использовать, но мне кажется, что надо дополнительно вводить доступ к таблицам ОО
|
|||
6
Карась
30.07.12
✎
14:13
|
И такой вопрос надо ли искать таблицу по индексу?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |