AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.09.2007, 14:31   #1  
kBace4ka is offline
kBace4ka
Участник
 
8 / 10 (1) +
Регистрация: 16.07.2007
Адрес: Челябинск
Ищу класс для работы с OpenOffice
Есть ли готовый класс для работы с OpenOffice ?
Старый 18.09.2007, 17:30   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от kBace4ka Посмотреть сообщение
Есть ли готовый класс для работы с OpenOffice ?
Форум выводит схожие, по его мнению, темы внизу, однако в этот раз он показывает что-то совсем не то... Хотя готовых классов, что бы вы под этом ни подразумевали, не публиковалось, тем не менее, в похожих темах были куски кода под различные задачи
Axapta+OpenOffice
OpenOffice форматирование
Как открыть шаблон в OpenOffice?
Также была ссылка на форум OpenOffice.org
Старый 19.09.2007, 13:48   #3  
mau is offline
mau
Участник
 
34 / 24 (1) +++
Регистрация: 12.03.2003
Адрес: Москва
Ссылка должна помочь. Сам не пробовал.
Старый 20.09.2007, 06:55   #4  
kBace4ka is offline
kBace4ka
Участник
 
8 / 10 (1) +
Регистрация: 16.07.2007
Адрес: Челябинск
Спасибо за ответы. А работал ли кто с буфером обмена? Средствами аксапты заполняется буфер и надо вставить содержимое в OpenOffice Calc.
Старый 21.09.2007, 08:09   #5  
kBace4ka is offline
kBace4ka
Участник
 
8 / 10 (1) +
Регистрация: 16.07.2007
Адрес: Челябинск
Бьюсь со вставкой из буфера обмена, не получается. Подскажите как реализовать.
Код на бейсике:
Код:
Set ServiceManager = CreateObject("com.sun.star.ServiceManager")
Set Desktop = ServiceManager.createInstance ("com.sun.star.frame.Desktop")
Dim arr() As Variant
Set Document=Desktop.LoadComponentFromURL("private:factory/swriter", "_blank", 0, arr())

Set oClip=ServiceManager.CreateInstance("com.sun.star.datatransfer.clipboard.SystemClipboard")
Set oClipContents=oClip.getContents()
oTypes=oClipContents.getTransferDataFlavors()
	
Сall oText.insertString(oCursor,oClipContents.getTransferData(oTypes(0)),False)
Мой код:
Код:
    Array arr = new Array(Types::String);
    COMVariant arg;
    COM OpenOffice, Desktop, Document, oClip, oClipContents;
    COM Sheets, Sheet, Cell, oCursor;
    COMVariant oTypes;
;
    OpenOffice = new Com("com.sun.star.ServiceManager");
    Desktop = OpenOffice.createInstance("com.sun.star.frame.Desktop");
    arg = COMVariant::createFromArray(arr);

    Document = DeskTop.LoadComponentFromURL("private:factory/scalc", "_blank", 0, arg);

    oClip = OpenOffice.CreateInstance("com.sun.star.datatransfer.clipboard.SystemClipboard");

    oClipContents = oClip.getContents();

    oTypes = oClipContents.getTransferDataFlavors();

    Sheets   = Document.getSheets();
    Sheet    = Sheets.getByIndex(0);
    Cell = Sheet.getCellByPosition(2,2);

    oCursor = Cell.createTextCursor();
    oCursor.gotoStart(false);

    Cell.insertString(oCursor, oClipContents.getTransferData(oTypes[1]), False);
Проблема с последней строкой, как сделать что бы брался oTypes[1] ?
Старый 21.09.2007, 09:59   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
>>>Проблема с последней строкой, как сделать что бы брался oTypes[1] ?

Попробуйте oTypes.Item(1)
Старый 21.09.2007, 10:00   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Это если это коллекция (да и то надо сначала ее из вартанта вытянуть), а вот если это SafeArray, то. oTypes.safeArray().value(1)
Старый 21.09.2007, 10:43   #8  
kBace4ka is offline
kBace4ka
Участник
 
8 / 10 (1) +
Регистрация: 16.07.2007
Адрес: Челябинск
Спасибо. Сработала такая строчка
Код:
Cell.insertString(xTextCursor, xClipContents.getTransferData(oTypes.value(2)), false);
почему то на двойке
ну и вставилось в другой кодировке, буду копать дальше.
Старый 21.09.2007, 10:45   #9  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от kBace4ka Посмотреть сообщение
почему то на двойке
Наверное, потому, что массив в аксапте с единицы начинается, а оригинально, с нуля.
Старый 12.12.2007, 10:57   #10  
DocSerzh is offline
DocSerzh
Участник
 
51 / 22 (0) +++
Регистрация: 28.06.2004
Может , будет интересно - обертка для работыс OpenOffice

http://triteh.ru/libooo/
Теги
openoffice

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как открыть шаблон в OpenOffice? PT DAX: Программирование 28 16.12.2010 06:13
DeniZone: OpenOffice and Dynamics ax Blog bot DAX Blogs 0 12.12.2008 13:05
Проблема с передачей контролов из формы в класс matew DAX: Программирование 0 28.04.2008 17:37
OpenOffice форматирование PT DAX: Программирование 8 13.12.2007 15:54
Axapta+OpenOffice mmm DAX: Программирование 3 20.02.2007 16:50

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:20.